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

如何让Rails忽略importmap的vendor/javascript并让Heroku自动安装依赖?

Rails Importmap 依赖自动部署(Heroku)方案

核心思路

借助Rails官方内置的importmap:install任务,读取config/importmap.rb中的依赖配置,在生产环境自动完成第三方脚本的下载,实现类似NPM管理node_modules的效果,无需自行编写下载逻辑。

具体步骤

1. 配置.gitignore

将vendor/javascript加入.gitignore,避免该目录提交到版本库:

# .gitignore
vendor/javascript

2. 配置Procfile实现自动安装

在项目根目录创建Procfile,添加启动前的依赖安装步骤:

web: bin/rails importmap:install && bin/rails server -p $PORT -e $RAILS_ENV

注:importmap:install会自动读取config/importmap.rb里的所有pin配置,将对应的第三方脚本下载到vendor/javascript目录,完全覆盖依赖安装需求。

3. 本地验证流程

本地测试时,可通过以下命令确认依赖自动安装逻辑正常:

# 删除已有的vendor/javascript目录
rm -rf vendor/javascript
# 执行官方安装命令
bin/rails importmap:install

执行后,所有config/importmap.rb中pin的依赖会自动下载到目标目录,和手动执行importmap:pin的效果一致。

4. 生产环境配置确认

确保config/environments/production.rb中Importmap相关配置处于启用状态(默认已启用):

# config/environments/production.rb
config.importmap.cache_sweepers = true
config.importmap.cdn_fallback = false # 若CDN无法获取依赖,会自动下载到本地目录

关键说明

  • importmap:install并非仅用于初始化Importmap,它的核心功能之一就是根据config/importmap.rb同步所有依赖,这是官方原生支持的功能,无需额外开发。
  • Heroku启动应用时,会先执行Procfile中的importmap:install完成依赖安装,再启动服务器,确保生产环境依赖完整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:04:52