node - package.json:如何执行设置环境变量的脚本
问题描述:
我想在我的package.json中执行一些脚本,它将设置我的应用程序可以使用的环境变量。 我需要的是这样的(在我的package.json)node - 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中。
任何解决方案,以实现这一目标?谢谢。
答
问题出现在单个&符号(&)之后webpack-dev-server调用。尾随符号指示shell在后台运行命令。在实践中,你的命令将被分成两部分,它们将在异步的shell中被调用。如果使用连字符(&)故意,那么你应该源ENV在这样两个部分瓦尔:
. ./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和节点
或者,如果你想同步运行:
. ./set-env-vars.sh && webpack-dev-server --hot --inline && cd server && NODE_ENV=development node app.js
的问题是,当我加'.'或'源'里面的脚本,我已收到此: 'sh:行0:。:set-env-vars.sh:文件未找到' – CodeBy
我认为你应该使用'./set-env-vars.sh' 'set-env-vars.sh'从当前目录执行文件。 – teq
我编辑了相应的答案 – teq