【发布时间】:2021-03-25 00:04:59
【问题描述】:
我有使用环境变量的 npm 脚本。这是package.json的摘录:
"scripts": {
"staging": "npm run deploy -env=staging",
"deploy": "winrs /r:intranet /d:F:\\wwwintranet\\deploy npm run build -env=%npm_config_env%",
到目前为止,-env=%npm_config_env% 已扩展为 -env=staging 或其他。突然它停止工作了。这可能是由于 npm 从 6.x 更新到 7.x。
当我使用"deploy": "set & winrs /r:intranet /d:F:\\wwwintranet\\deploy npm run build -env=%npm_config_env%" 进行测试时,我可以确认变量仍然设置。
作为临时解决方案,将 npm 降级到版本 6.x (npm install -g npm@6) 有所帮助。不过,我需要一个在未来也可以使用的解决方案。
如何为 npm 7.x 再次启用变量扩展?或者使用 npm 7.x 传递环境变量的替代方法是什么?
编辑
这是 npm 7.5.x 中的一个错误。它已在 npm 7.7.0 及更高版本中修复(请参阅https://github.com/npm/cli/issues/2731)
【问题讨论】:
-
可能与this rfcs有关。但是,将
"staging": "npm run deploy -env=staging"更改为"staging": "npm run deploy --env=staging",(即前缀env和双连字符) 有什么不同吗? -
@RobC 是的,阅读你链接的 npm-rfc,我认为这可能是问题所在,但与那里所说的相反,环境变量在 Windows cmd 中设置得很好i> (请参阅问题中的
set命令),但它们没有扩展。不,双连字符没有影响。
标签: windows npm environment-variables package.json variable-expansion