Rails 6.1项目部署Heroku遇Yarn --production=false语法错误求助
解决Rails 6.1部署Heroku时Yarn
--production=false 语法错误 问题根源
Heroku当前使用的Yarn版本(尤其是Yarn 2及以上)不再支持--production=false这种旧写法,你的项目部署流程里仍在传递这个无效参数,导致报错。
修复步骤
1. 锁定Yarn版本到兼容旧参数的1.x版本
在项目根目录新建.yarnrc文件,写入以下内容锁定Yarn版本:
--version 1.22.19
这个版本完全支持--production=false参数,能直接规避语法问题。
2. 改用Yarn 2+支持的参数写法
如果不想降级Yarn,就把所有用到--production=false的地方替换为--no-production:
- 打开
package.json,找到scripts里的heroku-postbuild命令,修改为:"scripts": { "heroku-postbuild": "yarn install --no-production" } - 检查Rails配置文件(比如
config/environments/production.rb),如果有调用Yarn的逻辑,同步替换参数。
3. 清理Heroku残留配置变量
再次确认并清理Heroku上可能残留的错误配置:
heroku config:unset YARN_PRODUCTION
(之前你删除的YARN: PRODUCTION:FALSE格式不符合环境变量规范,正确变量名应为YARN_PRODUCTION,直接执行上述命令彻底清除)
4. 重新提交并部署
将修改的文件提交后重新推送到Heroku:
git add .yarnrc package.json git commit -m "Fix Yarn production flag syntax error for Heroku deployment" git push heroku main
内容的提问来源于stack exchange,提问作者OKMantis
相关产品推荐
相关产品推荐

