You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

推送Ruby on Rails应用至Heroku时资产预编译失败:缺失Babel插件

解决Heroku部署Rails应用时assets:precompile失败的问题

1. 安装缺失的Babel插件

报错提示找不到@babel/plugin-proposal-private-methods包,直接通过Yarn安装该开发依赖:

yarn add @babel/plugin-proposal-private-methods --dev

安装完成后,提交更新后的package.json和yarn.lock文件到Git。

2. 统一Ruby版本

本地使用Ruby 2.6.1,但Heroku默认用2.6.6,版本差异可能引发依赖冲突。在项目的Gemfile顶部添加Ruby版本指定:

ruby '2.6.1'

然后运行bundle install更新Gemfile.lock,提交Gemfile和Gemfile.lock到Git。

3. 指定兼容的Node.js版本

Node.js 20.9.0版本过高,可能与旧版Rails的资产预编译流程不兼容。可以通过两种方式指定Node版本:

  • 方式一:创建.node-version文件
    在项目根目录新建文件.node-version,写入兼容的LTS版本(比如16.x系列):
16.20.2
  • 方式二:修改package.json的engines字段
    在package.json中添加engines配置,锁定Node和Yarn版本:
"engines": {
  "node": "16.x",
  "yarn": "1.22.x"
}

提交对应的配置文件到Git。

4. 重新部署

提交所有修改后,重新执行部署命令:

git push heroku master

补充说明

  • 缺失Babel插件是因为Rails资产预编译时需要该插件处理ES6私有方法语法;
  • 统一Ruby和Node版本能消除本地与Heroku环境的依赖差异;
  • 降级Node版本是为了适配旧版Rails的资产管道逻辑,避免高版本Node带来的兼容性问题。

内容的提问来源于stack exchange,提问作者nourza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 00:52:04