Communitygithub.com

junksidetm/darkside-toolkit

Next.js 16+ 與 Turbopack 引導指南 — 增量 Rust 打包、檔案系統快取、更快的開發啟動與 HMR、Turbopack 與 webpack 的取捨,以及 middleware.ts 到 proxy.ts 的檔案名稱變更。

darkside-toolkit 是什麼?

此技能提供開發與偵錯 Next.js 16+ 應用程式的全面指南,重點在於預設的 Rust 增量打包工具 Turbopack。它解釋了 Turbopack 如何利用檔案系統快取大幅提升開發啟動速度與熱模組替換(HMR),相關的重啟速度可提升 5 到 14 倍。該技能也釐清何時應堅持使用 Turbopack(日常開發),何時需要退回 webpack(例如遭遇 bug 或依賴僅限 webpack 的外掛),並涵蓋 next build 的生產建置行為。此外,它還詳細說明了 Next.js 16 中將 middleware.ts 重新命名為 proxy.ts 的重大變更,強調這是版本固有的要求,與使用的打包工具無關。它支援 Claude Code 等平台,並包含特定命令、使用範例以及避免常見陷阱(例如將 proxy.ts 誤標為缺失的 middleware 檔案)的最佳實務,該錯誤會破壞中介軟體的執行。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/junksidetm/darkside-toolkit/tree/HEAD/skills/nextjs-turbopack

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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 問題,或最佳化生產環境 bundle。

運作方式

  • 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 引入了 proxy.ts 作為中介軟體檔案名稱,取代了舊有的 middleware.ts 慣例:

  • Next.js 16+:在專案根目錄使用 proxy.ts
  • Next.js 16 之前:在專案根目錄使用 middleware.ts

此檔案名稱變更是綁定 Next.js 版本,而非使用哪個打包工具(Turbopack 或 webpack)。請務必查閱您所審視版本的官方文件。

請勿在 Next.js 16 專案中將 proxy.ts 標記為命名錯誤或遺失的中介軟體檔案。 此檔案是正確且有意為之的。建議重新命名為 middleware.ts 會破壞中介軟體的執行。

參考資料:Next.js proxy 文件

最佳實務

  • 保持在最新的 Next.js 16.x 版本,以獲得穩定的 Turbopack 與快取行為。
  • 如果開發速度變慢,請確認您正在使用 Turbopack(預設),且快取未被不必要地清除。
  • 若遇到生產環境 bundle 體積問題,請使用您版本的官方 Next.js bundle 分析工具。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能