10分钟搞定 Rails CSS 打包:cssbundling-rails 安装器与 rails new --css 快速上手教程
【免费下载链接】cssbundling-railsBundle and process CSS in Rails with Tailwind, PostCSS, and Sass via Node.js.项目地址: https://gitcode.com/gh_mirrors/cs/cssbundling-rails
cssbundling-rails 是 Rails 官方出品的 CSS 打包插件,帮你用 Tailwind CSS、PostCSS、Sass、Bootstrap、Bulma 等主流工具在 Node.js 环境下构建样式表,再由 Rails 资产管线交付。本文带你用 10 分钟完成安装、热更新开发和生产构建,快速掌握rails new --css的用法。
它解决了什么问题?
传统 Rails 项目想用上 Tailwind 或 PostCSS,往往要自己折腾 Node 环境。cssbundling-rails 把这件事标准化了:
- 📦 提供 5 种开箱即用的安装器:
tailwind、bootstrap、bulma、postcss、sass - 📁 约定构建产物统一输出到
app/assets/builds/目录,并自动把它加入.gitignore - 🔄 开发时用 watch 模式热更新,生产时自动挂载到
assets:precompile任务 - 🚀 Rails 7+ 支持
rails new --css参数,新建应用时直接预配置
一句话:你负责写样式,构建管线的事交给它。
环境准备
安装前请确保系统已具备以下条件:
- Node.js 与 Yarn(检测到
bun.lock时会自动切换为 Bun) - npx 7.1.0 及以上版本
准备工作就绪后,按下面两种方式任选其一即可。
最快配置方法:rails new --css 一键创建新应用
如果你是新建 Rails 7+ 项目,这是最省心的路径 —— 一条命令同时完成项目初始化和 cssbundling-rails 预配置:
rails new myapp --css postcss rails new myapp --css bootstrap rails new myapp --css bulma💡 注意:目前
--css支持bootstrap、bulma、postcss三种参数;--css tailwind/--css sass则对应不需要 Node 的 tailwindcss-rails 与 dartsass-rails 方案。
创建完成后,项目里已经准备好了入口样式文件(如app/assets/stylesheets/application.postcss.css)和package.json中的build:css脚本,直接进目录运行yarn再启动即可。
现有项目安装:bundle add 两步走
已有 Rails 应用接入 cssbundling-rails 同样简单,只需两步:
./bin/bundle add cssbundling-rails ./bin/rails css:install:tailwind第二条命令中的参数可替换为bootstrap、bulma、postcss、sass之一。安装器(入口定义在lib/tasks/cssbundling/install.rake)会自动帮你:
- 创建
app/assets/builds目录并写入.keep占位文件 - 修改
app/assets/config/manifest.js,把构建产物加入资产管线 - 把
/app/assets/builds/*和/node_modules追加进.gitignore - 删除旧的
app/assets/stylesheets/application.css,让构建产物接管 - 在
app/views/layouts/application.html.erb的<head>中插入stylesheet_link_tag "application" - 生成
Procfile.dev与bin/dev,并用npm/yarn装好对应依赖、写入build:css脚本
公共安装逻辑集中在lib/install/install.rb,各框架的差异化配置则分别在lib/install/tailwind/install.rb、lib/install/postcss/install.rb等文件中,想深入了解机制时可以翻一翻。
开发工作流:一边改样式一边热更新
开发时让构建器保持 watch 模式即可,有两种方式:
方式一:两个终端
yarn build:css --watch再在另一个终端启动rails server。
方式二:一条命令全托管(推荐)
./bin/devbin/dev通过 foreman 同时拉起 Rails 服务器和 CSS 构建 watcher(源码见lib/install/dev与lib/install/Procfile_for_node.dev),配合 jsbundling-rails 时还能一并监视 JS 构建。之后每次保存样式文件,构建器都会自动把入口文件(如app/assets/stylesheets/application.tailwind.css)打包成app/assets/builds/application.css,页面无需重启即可看到变化。
生产部署:css:build 自动挂载
部署到生产环境时无需额外操作:css:build任务已挂载到assets:precompile,流程是:
- 通过 yarn 安装
package.json中的依赖 - 运行
yarn build:css处理样式入口 - 产物进入资产管线,被摘要化并拷贝到
public/assets
测试环境同理,构建任务挂载在test:prepare上,保证测试前样式已就绪。
新手常见问题 FAQ
🔥 报SassC::SyntaxError?某些 CSS 包用到了新版 CSS 特性,老版sass-rails/sassc-rails不兼容。执行bundle remove sass-rails(或sassc-rails)即可修复。
🔥 生产环境提示application.css not in asset pipeline?通常是仓库里缺少构建输出目录。给app/assets/builds加一个.keep文件即可。
🔥 本地改了 CSS 却不生效?可能命中了本地预编译的旧文件,执行rails assets:clobber(会联动css:clobber清理app/assets/builds下的产物)再重启。
🔥 想在 Tailwind 中引入相对路径 CSS?Tailwind CSS 4 建议直接引用单个 CSS 文件而非全部打包,在布局中这样写:stylesheet_link_tag "application", "other", "styles", "data-turbo-track": "reload"。
关键文件速览
| 路径 | 说明 |
|---|---|
lib/tasks/cssbundling/install.rake | css:install:*五个安装任务的定义 |
lib/install/install.rb | 公共安装逻辑:builds 目录、manifest、.gitignore |
lib/install/helpers.rb | yarn / bun 自动识别与脚本注入辅助方法 |
lib/install/Procfile_for_node.dev | 开发模式默认进程清单 |
cssbundling-rails.gemspec | 插件元信息(当前版本 1.4.3) |
到这里,你已经完整掌握了 cssbundling-rails 的安装器与rails new --css工作流。从新建应用到现有项目接入,从热更新开发到生产构建,10 分钟内即可让 Node.js 生态的 CSS 工具链在 Rails 里跑起来。
【免费下载链接】cssbundling-railsBundle and process CSS in Rails with Tailwind, PostCSS, and Sass via Node.js.项目地址: https://gitcode.com/gh_mirrors/cs/cssbundling-rails
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考