【发布时间】:2019-11-18 11:27:37
【问题描述】:
我们正在处理nodeJs/ExpressJs,我们为开发和生产配置了多个.env 文件,并将其指向package.json 以用于不同的执行过程,我们在脚本中存在命名对话问题。
每当我们运行npm run prod 时,它都需要preprod 配置。可能是什么问题?
更新:我们发现脚本键的后缀在下一个脚本中是相同的,在将preprod 更新/重命名为preProd 之后,两者都运行良好。但为什么呢?
例如:
"scripts": {
"dev": "clear; env-cmd -f ./config/hostedDev.env nodemon --exec babel-node index.js",
"prod": "clear; env-cmd -f ./config/prod.env nodemon --exec babel-node index.js",
"preprod": "clear; env-cmd -f ./config/preprod.env nodemon --exec babel-node index.js"
},
【问题讨论】:
-
您能否创建一个更简单的可重现示例。就像只是“回声”(而不是“nodemon”)只是为了确认你所说的确实发生了。
-
使用different .env files in an anti-pattern。不同的环境(dev/prod)应该有自己的“.env”文件(相同的文件名)。
-
@laggingreflex,确实如此,我尝试使用
echo。显然它与“preprod”有关,脚本使用“preProd”甚至“prrprod”正确执行(只需一个字符更改)。 -
另外要注意的是,当我们运行
npm run prod时它会同时运行两个脚本,即它分别执行 preprod 和 prod。 -
@151291 如果您认为答案有用,请批准/投票! :)
标签: node.js npm terminal package.json