如何在npm脚本中获取环境变量?

时间:2016-10-13 13:32:29

标签: node.js npm package.json

我正试图在npm脚本中访问环境变量,如下所示:

"scripts": {
  "test": "istanbul cover node_modules/.bin/_mocha --root ../SERVER/routes -- --recursive"
},

然后像这样开始这个脚本:

SERVER=somewhere npm test

如何在package.json本身的npm脚本中获取SERVER变量的已解析值?

3 个答案:

答案 0 :(得分:3)

对于Windows用户,您可以这样使用变量:%SERVER%而不是$SERVER

或更佳的使用cross-env module的方法,它将允许您像在所有平台上的linux一样:

npm i cross-env

并使用它:

"scripts": {
  "test": "cross-env-shell \"istanbul cover node_modules/.bin/_mocha --root ../$SERVER/routes -- --recursive\""
}

答案 1 :(得分:0)

最好使用env并使用process.env获取脚本内的值。这是一种广泛使用的做法。

package.json只是一个json文件,它甚至不允许注释,所以我不建议使用这种方法。

答案 2 :(得分:-1)

使用$SERVER会为你工作吗?

"scripts": { "test": "istanbul cover node_modules/.bin/_mocha --root ../$SERVER/routes -- --recursive" }