Heroku部署Rails 6应用时提示webpack命令未找到报错如何解决
解决方案
你遇到的两个报错是因果关系:Your lockfile needs to be updated报错触发于你修改了package.json但未同步更新yarn.lock文件,Heroku部署时默认给yarn加上--frozen-lockfile参数,要求package.json和yarn.lock完全匹配才会安装依赖,所以你新增的webpack相关依赖根本没有被安装,后续就会触发webpack not found报错。按以下步骤操作即可解决:
- 本地项目根目录执行
yarn install,该命令会根据修改后的package.json自动更新yarn.lock,同步新增的依赖信息 - 提交更新后的锁文件到git仓库:
git add yarn.lock git commit -m "sync yarn.lock for webpack dependencies" - 重新执行部署命令
git push heroku main即可
可选排查项
如果操作后仍报错,可排查以下问题:
- 确认本地yarn版本为1.22.x系列,Rails 6.1不兼容yarn 2/3的锁文件格式,版本不符可降级yarn后重新执行上述步骤
- 本地先执行
yarn check命令校验依赖与锁文件的匹配度,先解决本地校验出的冲突再提交部署
内容的提问来源于stack exchange,提问作者jhicks2306
相关产品推荐
相关产品推荐

