【问题标题】:Is it possible to set a dotenv variable from package.json script?是否可以从 package.json 脚本设置 dotenv 变量?
【发布时间】:2020-11-08 04:43:12
【问题描述】:

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

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

我的 .env 文件就是这样的:

ENV = development

我正在使用窗户。 提前感谢您的帮助!

【问题讨论】:

    标签: node.js mocha.js dotenv


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以使用

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

      【讨论】:

      • 我实际上已经采用了您的 require 方法,它完全按照需要完成了。谢谢
      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 2021-11-16
      • 2019-07-28
      • 2016-03-29
      • 2016-11-07
      • 2015-05-09
      • 2020-11-06
      • 2013-07-13
      相关资源
      最近更新 更多