LaravelとViteとは
Vite は高速なフロントエンドビルドツールです。開発中は即座にファイルの変更を反映するホットモジュールリプレースメント(HMR)を提供し、本番ビルドでは最適化されたアセットを生成します。 Laravel 9以降、Viteが標準のフロントエンドビルドツールとして採用されており、laravel-vite-plugin を通じてLaravelと連携します。このプラグインが担う主な役割は次のとおりです。
- エントリーポイントの管理
- 開発サーバーのHMRサポート
@vite()Bladeディレクティブとの連携- 本番ビルド時のアセットのバージョニング(キャッシュバスティング)
Laravelのスターターキット(Laravel Breezeなど)を使っている場合、ViteとTailwindの設定はすでに含まれています。このページではゼロから設定する方法を説明します。
インストールと設定
Nodeのインストール確認
Viteを使うには Node.js(16以上)とnpmが必要です。インストール済みかどうか確認します。パッケージのインストール
新規インストールしたLaravelプロジェクトには、すでにpackage.json に vite と laravel-vite-plugin が含まれています。次のコマンドで依存パッケージをインストールします。
vite.config.js の設定
プロジェクトルートにvite.config.js が生成されています。エントリーポイント(バンドルの起点となるファイル)を指定します。
開発サーバーの起動
開発中はnpm run dev でViteの開発サーバーを起動します。ファイルを変更すると、ブラウザが自動的に更新されます(HMR)。
composer run dev は php artisan serve と npm run dev を同時に起動します。Bladeビューの自動リロード
refresh: true を設定すると、Bladeビューやルートファイルを保存したときにブラウザが自動リロードされます。
refresh: true のとき、次のディレクトリへの変更が監視対象になります。
resources/views/**app/Livewire/**routes/**lang/**
本番ビルド
本番環境へデプロイする前にnpm run build を実行します。アセットがバンドル・バージョニングされ、public/build/ に出力されます。
manifest.json にはファイル名とハッシュのマッピングが記録されており、@vite() ディレクティブがこれを参照して正しいファイルを読み込みます。
Bladeからのアセット読み込み
@vite() Bladeディレクティブをレイアウトの <head> に追加します。
@vite() ディレクティブは開発中と本番で自動的に動作を切り替えます。
JavaScript・CSSのエントリーポイント設定
JavaScriptの設定
resources/js/app.js がメインのエントリーポイントです。ここから他のモジュールをインポートします。
CSSの設定
resources/css/app.css にグローバルなスタイルを記述します。
複数のエントリーポイント
管理画面など、ページごとに異なるアセットをバンドルしたい場合は、複数のエントリーポイントを指定します。Tailwind CSSとの連携
Tailwind CSS v4以降はViteプラグインとして統合されます。1
Tailwindをインストールする
2
vite.config.js にプラグインを追加する
3
CSSにTailwindをインポートする
Tailwind CSS v3を使う場合は
tailwind.config.js と postcss.config.js が必要です。最新のTailwind CSS v4ではこれらのファイルは不要です。エイリアス設定
laravel-vite-plugin は @ エイリアスを自動で設定します。これは resources/js ディレクトリを指します。
resolve.alias で設定します。
フレームワーク別の設定
Vue
React
@viteReactRefresh ディレクティブを @vite より前に追加します。
静的アセットの処理
Bladeテンプレートから参照する画像やフォントもViteでバージョニングできます。assets オプションで対象ディレクトリを指定します。
Vite::asset() メソッドでバージョン付きURLを取得します。
まとめ
次のステップ
キャッシュ
Laravelのキャッシュ機能でアプリケーションのパフォーマンスをさらに向上させる方法を学びます。