是否可以从package.json脚本设置dotenv变量?

时间:2020-07-18 14:41:45

标签: node.js mocha dotenv

我在我的项目中使用dotenv从.env文件中获取变量。我希望能够在运行npm test时从package.json中的.env(dotenv)文件中设置一个值。与此类似:

"scripts": {
    "test": "set ENV=test mocha './test/**/*.spec.js'",
    "start": "node app"
  }

我的.env文件就是这样:

ENV = development

我正在使用Windows。 预先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用

"test": "ENV=test mocha './test/**/*.spec.js'"

在Linux上的npm脚本中,并使用

"test": "set ENV=test&&mocha './test/**/*.spec.js'"

在Windows上。

顺便说一句,如果您需要跨平台,请使用cross-env,以便您的代码可以在Windows和Linux上运行。

您也可以使用require。

例如,您有一个./test/test.env.js

// test/test.env.js
process.env.ENV = 'test';

并在您的npm脚本中使用require,如下所示:

"test": "mocha --require 'test/test.env.js' './test/**/*.spec.js'"

答案 1 :(得分:0)

是的,您也可以通过命令传递environment variables

即与您的脚本:-

"scripts": {
    "test": "set ENV=test mocha './test/**/*.spec.js'",
    "start": "ENV=test node app.js"  //NOTICE I HAVE CHANGED THIS.
  }

仅仅通过使用,我不知道如何帮助测试脚本,我也不明白,但是我相信它一定是这样的

"test": "ENV=test mocha './test/**/*.spec.js'"