Next.js 與 Turbopack
Next.js 16+ 在本地開發中預設使用 Turbopack:這是一個以 Rust 編寫的增量打包工具,能大幅提升開發啟動速度與熱更新效能。
何時使用
- Turbopack(預設開發環境):用於日常開發。在大型應用程式中,能提供更快的冷啟動與 HMR。
- Webpack(傳統開發環境):僅在遇到 Turbopack 錯誤或依賴僅支援 webpack 的外掛時使用。可透過
--webpack(或--no-turbopack,取決於您的 Next.js 版本;請查閱您版本的官方文件)來停用。 - 生產環境:生產構建行為(
next build)可能使用 Turbopack 或 webpack,取決於 Next.js 版本;請查閱您版本的官方 Next.js 文件。
使用時機:在開發或偵錯 Next.js 16+ 應用程式、診斷緩慢的開發啟動或 HMR、或優化生產構建包時。
運作方式
- Turbopack:專為 Next.js 開發設計的增量打包工具。使用文件系統快取,使得重新啟動更快(例如在大型專案中快 5–14 倍)。
- 開發環境預設:自 Next.js 16 起,
next dev預設使用 Turbopack 執行,除非停用。 - 文件系統快取:重新啟動時會重用先前的成果;快取通常位於
.next目錄;基礎使用無需額外設定。 - Bundle Analyzer(Next.js 16.1+):實驗性的 Bundle Analyzer,用於檢查輸出並找出較重的依賴;可透過設定或實驗性標記啟用(請查閱您版本的 Next.js 文件)。
範例
指令
next dev
next build
next start
使用方式
執行 next dev 以使用 Turbopack 進行本地開發。使用 Bundle Analyzer(請查閱 Next.js 文件)來優化程式碼分割與減少大型依賴。盡可能優先使用 App Router 與伺服器元件。
最佳實踐
- 保持在最新的 Next.js 16.x 版本,以獲得穩定的 Turbopack 與快取行為。
- 如果開發速度緩慢,請確認您正使用 Turbopack(預設),且快取未被不必要地清除。
- 對於生產構建包大小問題,請使用您版本對應的官方 Next.js 構建分析工具。