ここではLaravelにBootstrapをインストールする方法について解説します。
多機能なLaravel UIを使う方法と、Bootstrapだけをインストールする方法があります。
実行確認環境
Laravel 9.5.1
A. Laravel UIを使う場合
特にこだわりなどがなければこちらでいいかと思います。
色々な設定を自動でやってくれ、簡単に導入することができます。
$ composer require laravel/ui
Laravel UI のインストールが完了したらartisanコマンドを実行します。
(余談ですが、bootstrap以外にもvueやreactのインストールもできます。)
$ php artisan ui bootstrap
Please run "npm install && npm run dev" to compile your fresh scaffolding.
と出るので
$ npm install && npm run dev
を実行します。
1回目でエラーになることがあるようですが、再度実行すれば通ることが多いです。
もし再度実行しても通らない場合でも、メッセージを読むと解消できることが多いです。
Laravel UIにより、すでに
webpack.mix.js
も自動で書き換えられており、npm run devをしたことで
public/css/app.css
も自動で生成されています。
resources/sass/app.scss
が生成されているので、こちらを編集してnpm run devを実行するとコンパイルできます。
<link href="{{ asset('/css/app.css') }}" rel="stylesheet">
で読み込むともう利用できる状態になっています。
Laravel UIを使う場合はこれで完了です!
B. Bootstrapのみをインストールする(Laravel UIを使わない)場合
すでに型ができており余計なものをいれたくない、などLaravel UIをいれたくない理由がある場合はこちらになります。
Bootstrap5のインストール
$ npm -v
でバージョンが表示され、npmがインストールされていることを確認しましょう。
Laravelをインストールしたディレクトリ($ lsしてpackage.jsonなどが表示されるディレクトリ)にて
$ npm install
$ npm install bootstrap
を実行します。
正式版がリリースされたため、上記コマンドでもbootstrap5がインストールされるようになっていました。
これで公式にあるような
└── node_modules/
└── bootstrap
├── js
└── scss
という構造ができあがります。
Laravel Mixの設定
Laravel Mixはデフォルトでpackage.jsonに記載されているため、先程のnpm installにてすでにインストールはされているはずです。
設定は同じくLaravelのディレクトリにデフォルトで存在するwebpack.mix.jsにて行います。
デフォルトでは
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
//
]);
という記述になっているかと思いますが、postCssはいらないので削除し、
mix.js('resources/js/app.js', 'public/js')
.sass('resources/scss/custom.scss', 'public/css');
と書き換えます。
resourcesディレクトリ配下にscssというディレクトリを作成します。
上記ではcustom.scssというファイル名を指定しているのでcustom.scssというファイルをresources/scss配下に作成しましょう。
もちろん設定と一致していれば任意の名前でOKなのでapp.scssなどでも大丈夫です。
custom.scssには下記を記述し、bootstrapを読み込みます。これはすべて読み込みますが、オプションで必要なものだけ読み込む方法もあります。(詳しくは公式)
@import "../../node_modules/bootstrap/scss/bootstrap";
Laravelの場合はresourcesディレクトリの分階層が1つ深いので、Bootstrap公式より1階層多く上がっています。
$ npm run dev でコンパイルがされます。
ちなみに私の環境ではエラーがでたので
$ npm cache clear --force
$ npm install
でインストールし直してからnpm run devを再実行しました。
成功するとpublic/cssディレクトリ配下にながーいcustome.cssが出力されているはずです。
あとはSCSSを記述していくだけです!
参考:
公式 https://getbootstrap.jp/docs/5.0/customize/sass/
https://coliss.com/articles/build-websites/operation/work/bootstrap-5-tutorial-without-jquery.html