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

Is it possible to set a dotenv variable from package.json script?

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

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

我的 .env 文件就是这样:

ENV = development

我正在使用 windows。 在此先感谢您的帮助!

是的,你可以这样做,你也可以通过命令传递 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'"

您可以使用

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