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

咨询:Rails生产环境中应通过哪个脚本触发build:css?

解决生产环境下Rails预编译资产未触发build:css的问题

核心原因

Rails 默认不会自动触发 package.json 中自定义的 build:css 脚本,可通过以下方式关联触发:

方法1:修改package.json的build脚本(推荐)

Rails 在执行 assets:precompile 时,会自动调用 npm 的 build 脚本(如果存在)。只需把 build:css 整合到 build 脚本中:

"scripts": {
  ...
  "build": "npm run build:css",
  "build:css": "tailwindcss --postcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application_compiled.css"
}

之后执行 RAILS_ENV=production rails assets:precompile,Rails 会自动运行 npm run build,进而触发 build:css 生成目标 CSS 文件。

方法2:手动串联执行命令

如果不想修改 package.json,可以在预编译前手动先执行 build:css:

RAILS_ENV=production npm run build:css && rails assets:precompile

方法3:配置Rails资产管道触发脚本

在 config/application.rb 中添加配置,让 Rails 在预编译资产时执行指定脚本:

config.assets.precompile += %w( application_compiled.css )
config.assets.configure do |env|
  env.register_preprocessor 'text/css', :tailwind do |input|
    `npm run build:css`
    input
  end
end

这种方式需要确保脚本执行时机正确,相对前两种稍复杂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:15:16