部署Ember.js应用到Heroku时无法下载Node 14.18.0如何解决?
报错根因
部署日志里的Unable to download node 14.18.0; does it exist?是核心错误,触发原因有两个:
- 你指定的Node.js 14.18.0小版本的下载源已经从Heroku的Node.js构建包源中下线
- 你使用的
https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/emberjs.tgz是已经停止维护的旧版Ember专属构建包,依赖的heroku/nodejs-v98版本构建包不会同步更新可用的Node.js版本列表
解决步骤
- 第一步:调整package.json中的engines配置,要么把Node.js版本换成14.x的最终LTS可用版本,要么使用范围匹配避免小版本下线问题:
"engines": { "node": "14.x", "npm": "6.14.15", "yarn": "1.19.1" }
修改后提交该改动到你的代码仓库。
第二步:替换已停更的旧Ember构建包,使用Heroku官方推荐的Ember应用部署构建包组合:
首先清空现有构建包配置:heroku buildpacks:clear
依次添加官方维护的构建包:heroku buildpacks:add heroku/nodejsheroku buildpacks:add heroku-community/nginx第三步:清除之前的构建缓存,避免旧配置残留影响部署:
heroku builds:cache:purge第四步:重新执行git push部署到Heroku即可。
可选优化
如果你的Ember Octane项目兼容更高版本Node.js,建议将engines中的Node.js版本调整为16.x LTS,Heroku对该版本的支持更稳定,后续出现版本源下线的概率更低。
内容的提问来源于stack exchange,提问作者Waihon Yew
相关产品推荐
相关产品推荐

