我喜欢在我的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。
实现这一目标的任何解决方案?谢谢。
答案 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