在package.json中访问环境variables

要在npm脚本中访问一个环境variables,你可以在你的package.json做这样的事情:

 "scripts": { "preinstall": "echo ${npm_package_name}" } 

问题是只能在Unix中使用,而不能在Windows中使用%npm_package_name%

有没有办法做到这个独立的操作系统? 在调用命令之前,如果npm可以做这样一个可变的扩展,那将会很好。

为了使其跨平台,请使用cross-var

 "scripts": { "preinstall": "cross-var echo ${npm_package_name}" } 

没有已知的方法可以独立于操作系统。

一个很好的解决方法是在节点脚本中执行命令:

首先,更改preinstall命令以执行节点脚本:

 "scripts": { "preinstall": "node nameEcho.js" } 

然后在nameEcho.js文件中定义命令:

 // require the package.json file var pjson = require('./package.json'); // echo the package's name console.log(pjson.name);