如何配置避免Git推送到Heroku时自动引导npm?
解决Heroku部署时npm被自动引导的问题
首先得帮你澄清一下日志里的行为:你看到的Bootstrapping npm 5.7.1 (replacing 5.6.0)其实是Heroku在严格执行你package.json里的配置——它安装完Node 8.10.0后,发现该Node版本自带的npm是5.6.0,和你指定的5.7.1不匹配,所以自动帮你升级到了你要求的npm版本。这本身是符合你配置预期的正常操作。
但如果你确实想要避免这个“引导”过程,这里有两种可行的方案:
方案1:移除package.json中的npm版本指定
如果你不需要严格锁定npm版本,只保留Node版本的配置即可:
"engines": { "node": "8.10.0" }
这样Heroku就会直接使用Node 8.10.0自带的npm 5.6.0,不会再进行版本替换的操作。
方案2:通过环境变量禁用Heroku的npm自动处理
如果你需要保留npm版本的指定,但不想让Heroku自动执行安装引导,可以设置Heroku的环境变量SKIP_NPM=true:
- 在本地终端执行命令配置环境变量:
heroku config:set SKIP_NPM=true
- 重新推送代码到Heroku:
git push heroku master
⚠️ 注意:设置这个变量后,Heroku会完全跳过npm的安装和依赖安装流程。所以你需要确保代码已经提前完成依赖安装(比如将node_modules提交到Git,但这种方式不推荐,容易引发依赖兼容问题),或者在package.json的scripts字段中手动添加依赖安装的命令。
最后多说一句:通常情况下,Heroku自动帮你安装指定的npm版本是安全且符合预期的,除非你有特殊的定制需求,否则不建议禁用这个功能哦。
内容的提问来源于stack exchange,提问作者user9020244
相关产品推荐
相关产品推荐

