提问者:小点点

有可能从package.json脚本中设置一个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个答案

匿名用户

是的,您可以这样做,您也可以通过命令传递环境变量

即使用您的脚本:-

"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'"

匿名用户

您可以使用

"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'"