Skip to main content

LaravelとViteとは

Vite は高速なフロントエンドビルドツールです。開発中は即座にファイルの変更を反映するホットモジュールリプレースメント(HMR)を提供し、本番ビルドでは最適化されたアセットを生成します。 Laravel 9以降、Viteが標準のフロントエンドビルドツールとして採用されており、laravel-vite-plugin を通じてLaravelと連携します。このプラグインが担う主な役割は次のとおりです。
  • エントリーポイントの管理
  • 開発サーバーのHMRサポート
  • @vite() Bladeディレクティブとの連携
  • 本番ビルド時のアセットのバージョニング(キャッシュバスティング)
Laravelのスターターキット(Laravel Breezeなど)を使っている場合、ViteとTailwindの設定はすでに含まれています。このページではゼロから設定する方法を説明します。
ViteがLaravel全体のフロントエンド構成の中でどういう位置付けかは、フロントエンド で先に全体像を確認できます。

インストールと設定

Nodeのインストール確認

Viteを使うには Node.js(16以上)とnpmが必要です。インストール済みかどうか確認します。

パッケージのインストール

新規インストールしたLaravelプロジェクトには、すでに package.jsonvitelaravel-vite-plugin が含まれています。次のコマンドで依存パッケージをインストールします。

vite.config.js の設定

プロジェクトルートに vite.config.js が生成されています。エントリーポイント(バンドルの起点となるファイル)を指定します。
SPAやInertiaを使う場合は、CSSをJavaScriptからインポートする形式が推奨されます。その場合はエントリーポイントから resources/css/app.css を除き、resources/js/app.js の先頭に import '../css/app.css'; を追加します。

開発サーバーの起動

開発中は npm run dev でViteの開発サーバーを起動します。ファイルを変更すると、ブラウザが自動的に更新されます(HMR)。
Laravelの開発サーバーと同時に起動することもできます。
composer run devphp artisan servenpm run dev を同時に起動します。

Bladeビューの自動リロード

refresh: true を設定すると、Bladeビューやルートファイルを保存したときにブラウザが自動リロードされます。
refresh: true のとき、次のディレクトリへの変更が監視対象になります。
  • resources/views/**
  • app/Livewire/**
  • routes/**
  • lang/**

本番ビルド

本番環境へデプロイする前に npm run build を実行します。アセットがバンドル・バージョニングされ、public/build/ に出力されます。
ビルド後のディレクトリ構造の例:
manifest.json にはファイル名とハッシュのマッピングが記録されており、@vite() ディレクティブがこれを参照して正しいファイルを読み込みます。
public/build/ ディレクトリはビルド成果物なので .gitignore に追加することを推奨します。デプロイ先でビルドを実行するか、CIでビルドしてデプロイします。

Bladeからのアセット読み込み

@vite() Bladeディレクティブをレイアウトの <head> に追加します。
CSSをJavaScriptからインポートしている場合は、JavaScriptのエントリーポイントだけ指定します。
@vite() ディレクティブは開発中と本番で自動的に動作を切り替えます。

JavaScript・CSSのエントリーポイント設定

JavaScriptの設定

resources/js/app.js がメインのエントリーポイントです。ここから他のモジュールをインポートします。

CSSの設定

resources/css/app.css にグローバルなスタイルを記述します。

複数のエントリーポイント

管理画面など、ページごとに異なるアセットをバンドルしたい場合は、複数のエントリーポイントを指定します。
Bladeでは対応するエントリーポイントのみ読み込みます。

Tailwind CSSとの連携

Tailwind CSS v4以降はViteプラグインとして統合されます。
1

Tailwindをインストールする

2

vite.config.js にプラグインを追加する

3

CSSにTailwindをインポートする

Tailwind CSS v3を使う場合は tailwind.config.jspostcss.config.js が必要です。最新のTailwind CSS v4ではこれらのファイルは不要です。

エイリアス設定

laravel-vite-plugin@ エイリアスを自動で設定します。これは resources/js ディレクトリを指します。
カスタムエイリアスを追加したい場合は resolve.alias で設定します。
エイリアスを使ったインポート例:

フレームワーク別の設定

Vue

React

Reactを使う場合、Bladeテンプレートに @viteReactRefresh ディレクティブを @vite より前に追加します。

静的アセットの処理

Bladeテンプレートから参照する画像やフォントもViteでバージョニングできます。assets オプションで対象ディレクトリを指定します。
Bladeテンプレートでは Vite::asset() メソッドでバージョン付きURLを取得します。

まとめ

次のステップ

キャッシュ

Laravelのキャッシュ機能でアプリケーションのパフォーマンスをさらに向上させる方法を学びます。
最終更新日 2026年5月27日