Skip to main content

什麼是 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 設定已包含。本頁說明從零設定的方法。
Vite 在 Laravel 整體前端結構中的定位,可先在 前端 確認全景。

安裝與設定

確認 Node 已安裝

使用 Vite 需要 Node.js(16 以上)與 npm。確認是否已安裝。

安裝套件

新裝的 Laravel 專案 package.json 已包含 vitelaravel-vite-plugin。以下列指令安裝相依:

vite.config.js 設定

專案根目錄已產生 vite.config.js。可指定進入點(bundle 起點檔案)。
若使用 SPA 或 Inertia,建議以 JavaScript import CSS 的形式。此時可將 resources/css/app.css 從進入點移除,於 resources/js/app.js 開頭加上 import '../css/app.css';

啟動開發伺服器

開發時以 npm run dev 啟動 Vite 開發伺服器。變更檔案時瀏覽器會自動更新(HMR)。
也可與 Laravel 開發伺服器同時啟動:
composer run dev 會同時啟動 php artisan servenpm 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() 指示詞會參考此檔載入正確檔案。
public/build/ 目錄是建置產物,建議加入 .gitignore。可在部署目的地執行建置,或在 CI 建置後部署。

從 Blade 載入 asset

在版面的 <head> 加入 @vite() Blade 指示詞。
若從 JavaScript import CSS,只指定 JavaScript 進入點即可。
@vite() 指示詞會依開發或正式環境自動切換行為。

JavaScript/CSS 進入點設定

JavaScript 的設定

resources/js/app.js 為主要進入點。從此 import 其他模組。

CSS 的設定

resources/css/app.css 撰寫全域樣式。

多個進入點

如管理畫面等要在不同頁面打包不同 asset 時,可指定多個進入點。
在 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 不需要這些檔案。

Alias 設定

laravel-vite-plugin 會自動設定 @ alias,指向 resources/js 目錄。
若要新增自訂 alias,在 resolve.alias 設定。
使用 alias 的 import 範例:

依框架的設定

Vue

React

使用 React 時,於 Blade 樣板將 @viteReactRefresh 指示詞加在 @vite 之前。

靜態 Asset 的處理

從 Blade 樣板參照的圖片或字型也可用 Vite 版本化。以 assets 選項指定對象目錄。
在 Blade 樣板中以 Vite::asset() 方法取得帶版本的 URL。

總結

後續步驟

快取

學習 Laravel 快取功能,進一步提升應用效能。
最後修改於 2026年8月2日