以前Rails7でTailwind CSSの導入をしましたが、今回はBootstrapを導入してみます。
esbuildを使用します。
プロジェクト作成時に導入する場合
1. rails new mofmof -j esbuild --css bootstrap でプロジェクトを作成する
2. 以下を package.json に追加する
"scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --format=esm --outdir=app/assets/builds --public-path=/assets", "build:css:compile": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules", "build:css:prefix": "postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css", "build:css": "yarn build:css:compile && yarn build:css:prefix", "watch:css": "nodemon --watch ./app/assets/stylesheets/ --ext scss --exec \"yarn build:css\"" }
既存のプロジェクトに途中から導入する場合
1. 以下を Gemfile に追加
gem "cssbundling-rails"
2. bundle install を実行
3. bin/rails css:install:bootstrap 実行
4. 以下を package.json の scripts に追加する
"scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --format=esm --outdir=app/assets/builds --public-path=/assets", "build:css:compile": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules", "build:css:prefix": "postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css", "build:css": "yarn build:css:compile && yarn build:css:prefix", "watch:css": "nodemon --watch ./app/assets/stylesheets/ --ext scss --exec \"yarn build:css\"" }
自分で作成したCSSファイルを読み込みたい場合
例えば app/assets/stylesheets/mofmof.css というCSSファイルを読み込みたい場合はapp/assets/stylesheets/application.bootstrap.scss を以下のように変更します。
@import 'bootstrap/scss/bootstrap'; @import 'bootstrap-icons/font/bootstrap-icons'; @import 'mofmof';
app/assets/stylesheets/mofmof.css は css ファイルではなく scss ファイルでもコンパイルできます。
終わり
Tailwind CSSを導入した時よりも scripts が多くなっています。
使っているコマンドも違うので注意してくださいね。