node - package.json:如何执行设置环境变量的脚本

时间:2016-09-30 10:56:39

标签: node.js

我喜欢在我的package.json中执行一些脚本,该脚本将设置我的应用程序可以使用的环境变量。 我需要这样的东西(在我的package.json中)

  "scripts": {
    "dev": "set-env-vars.sh && webpack-dev-server --hot --inline & cd server && NODE_ENV=development node app.js",
  },

这是我的set-env-vars.sh文件:

#!/bin/bash
export ENV_MONGODB_URI="mongodb://localhost:27017/mydb"
...

我知道我需要使用来源或。要将我的变量导出到shell中,这是在shell中工作,但不适用于我的package.json dev-script。

实现这一目标的任何解决方案?谢谢。

1 个答案:

答案 0 :(得分:1)

问题出在 webpack-dev-server 调用之后的单&符号(&)中。尾随和号指示shell在后台运行命令。实际上,您的命令将分为两部分,这些部分将在异步shell中异步调用。如果您故意使用&符号(&),那么您应该在这两个部分中获取env vars:

. ./set-env-vars.sh && webpack-dev-server --hot --inline & . ./set-env-vars.sh && cd server && NODE_ENV=development node app.js

因此,来自 set-env-vars.sh 的变量将可用于 webpack-dev-server node

或者如果您想同步运行它:

. ./set-env-vars.sh && webpack-dev-server --hot --inline && cd server && NODE_ENV=development node app.js