无法访问NPM环境variables

在我的package.json中,我已经设置了一个名为“foo”的configurationvariables为“bar”,并且我正在用NPM脚本调用该variables。

"config": { "foo": "bar" }, "scripts": { "test": "echo $npm_package_config_foo" } 

运行npm run test应该输出bar ,但是不行。

我怀疑我有一个普遍的问题访问环境variables。 例如,我可以使用NPM脚本中的uglifyjs,但不能使用命令行中的uglifyjs。

从命令行运行printenv不会显示任何人所期望的任何NPMvariables。

安装程序:OSX 10.11.6,NPM 2.15.11,节点6.2.0。

您所尝试的是错误的:节点环境variables只能在节点进程中使用进程全局variables进行访问,而不是在系统范围内进行访问。 所以要达到你想要的,你必须做的是做出以下的改变。

的package.json

 "config": { "foo": "bar" }, "scripts": { "test": "node ./app.js" } 

app.js

 console.log(process.env.npm_package_config_foo); 

你可以在这里find更多的信息

我的解决scheme

  1. 使用npm config set foo bar

  2. 从我的package.json中删除了configuration对象。

  3. 在NPM scripts属性$npm_package_config_foo $npm_config_foo更改$npm_package_config_foo $npm_config_foo