什麼是 Laravel 與 Vite
Vite 是高速的前端建置工具。開發時提供即時反映檔案變更的 Hot Module Replacement(HMR),正式環境建置時產生最佳化的 asset。 Laravel 9 起,Vite 被採用為標準前端建置工具,並透過laravel-vite-plugin 與 Laravel 整合。此外掛的主要職責如下:
- 管理進入點(entry point)
- 支援開發伺服器 HMR
- 與
@vite()Blade 指示詞整合 - 正式建置時的 asset 版本化(cache busting)
使用 Laravel 起始套件(如 Laravel Breeze)時,Vite 與 Tailwind 設定已包含。本頁說明從零設定的方法。
安裝與設定
確認 Node 已安裝
使用 Vite 需要 Node.js(16 以上)與 npm。確認是否已安裝。安裝套件
新裝的 Laravel 專案package.json 已包含 vite 與 laravel-vite-plugin。以下列指令安裝相依:
vite.config.js 設定
專案根目錄已產生vite.config.js。可指定進入點(bundle 起點檔案)。
啟動開發伺服器
開發時以npm run dev 啟動 Vite 開發伺服器。變更檔案時瀏覽器會自動更新(HMR)。
composer run dev 會同時啟動 php artisan serve 與 npm run dev。Blade view 的自動 reload
設定refresh: true 後,儲存 Blade view 或路由檔案時瀏覽器會自動 reload。
refresh: true 時,以下目錄的變更會被監控:
resources/views/**app/Livewire/**routes/**lang/**
正式建置
在部署到正式環境前執行npm run build。asset 會被打包並版本化,輸出到 public/build/。
manifest.json 記錄檔名與 hash 的對應,@vite() 指示詞會參考此檔載入正確檔案。
從 Blade 載入 asset
在版面的<head> 加入 @vite() Blade 指示詞。
@vite() 指示詞會依開發或正式環境自動切換行為。
JavaScript/CSS 進入點設定
JavaScript 的設定
resources/js/app.js 為主要進入點。從此 import 其他模組。
CSS 的設定
於resources/css/app.css 撰寫全域樣式。
多個進入點
如管理畫面等要在不同頁面打包不同 asset 時,可指定多個進入點。與 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 不需要這些檔案。Alias 設定
laravel-vite-plugin 會自動設定 @ alias,指向 resources/js 目錄。
resolve.alias 設定。
依框架的設定
Vue
React
@viteReactRefresh 指示詞加在 @vite 之前。
靜態 Asset 的處理
從 Blade 樣板參照的圖片或字型也可用 Vite 版本化。以assets 選項指定對象目錄。
Vite::asset() 方法取得帶版本的 URL。
總結
後續步驟
快取
學習 Laravel 快取功能,進一步提升應用效能。