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

标签 node.js mocha.js 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。 在此先感谢您的帮助!

最佳答案

你可以使用

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

关于node.js - 是否可以从 package.json 脚本设置 dotenv 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62969840/

相关文章:

javascript - Babel-node + mocha + babel-istanbul,意外的保留字 'import'

javascript - Karma 不运行测试用例

javascript - React 中使用 Dotenv 和 Webpack 的 env-vars

node.js - Node HTTPS 请求 – MalformedJsonException

node.js - 如何在 Nodejs 中为 Winston 记录器编写单元测试

node.js - Express 中 Mongoose 验证失败后如何向客户端返回错误消息

javascript - nodejs .env 变量显示未定义

node.js - 如何知道 Node js 是否安装了特定的 Windows 服务?

javascript - Mocha 中的Sinon Stub 不工作

babeljs - 使用 Babel 转编译后 dotenv 不工作