如何从 package.json 中设置环境变量?

新手上路,请多包涵

如何从 package.json 中设置一些环境变量以与 npm start 类似的命令一起使用?

这是我目前在 package.json 中的内容:

 {
  ...
  "scripts": {
    "help": "tagove help",
    "start": "tagove start"
  }
  ...
}

我想在启动脚本中设置环境变量(如 NODE_ENV ),同时仍然能够使用一个命令启动应用程序 npm start

原文由 dev.meghraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

在脚本命令中设置环境变量:

 ...
"scripts": {
  "start": "node app.js",
  "test": "NODE_ENV=test mocha --reporter spec"
},
...

然后在您的应用程序中使用 process.env.NODE_ENV

注意:这仅适用于 Mac 和 Linux 。对于 Windows,请参阅注释。

原文由 cesar 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需使用 NPM 包 cross-env 。超级简单。适用于 Windows、Linux 和所有环境。请注意,您不使用 && 移动到下一个任务。您只需设置环境,然后开始下一个任务。 感谢@mikekidder 在此处 评论之一中 提出的建议。

从文档:

 {
  "scripts": {
    "build": "cross-env NODE_ENV=production OTHERFLAG=myValue webpack --config build/webpack.config.js"
  }
}

请注意,如果您想设置多个全局变量,只需连续声明它们,然后是要执行的命令。

最终,执行的命令(使用 spawn)是:

 webpack --config build/webpack.config.js

NODE_ENV 环境变量将由cross-env设置

原文由 TetraDev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题