next.config.js 設定選項
Next.js 可以透過專案根目錄中的 next.config.js
檔案進行設定(例如位於 package.json
旁)。
next.config.js
是一個標準的 Node.js 模組,而非 JSON 檔案。它會被 Next.js 伺服器和建構階段使用,但不會包含在瀏覽器建構中。
如果您需要使用 ECMAScript 模組,可以使用 next.config.mjs
:
您也可以使用函式形式:
自 Next.js 12.1.0 起,您可以使用非同步函式:
phase
是載入設定時的當前上下文。您可以查看可用的階段常數。這些階段常數可從 next/constants
匯入:
註解行是您可以放置 next.config.js
允許的設定選項的位置,這些選項定義於此檔案中。
然而,沒有任何設定是必須的,您也不需要理解每個設定的作用。相反地,您可以在本節中搜尋需要啟用或修改的功能,它們會告訴您該怎麼做。
請避免使用目標 Node.js 版本不支援的新 JavaScript 功能。
next.config.js
不會被 Webpack、Babel 或 TypeScript 解析。
本文件列出了所有可用的設定選項:
assetPrefix
了解如何使用 assetPrefix 配置選項來設定您的 CDN。
basePath
使用 `basePath` 將 Next.js 應用程式部署在網域的子路徑下。
compress
Next.js 提供 gzip 壓縮功能來壓縮渲染內容與靜態檔案,此功能僅適用於伺服器目標 (server target)。進一步了解相關資訊。
devIndicators
經過最佳化的頁面會包含指示器,讓您知道該頁面是否正在進行靜態最佳化。您可以在這裡選擇關閉此功能。
distDir
設定自訂建置目錄以取代預設的 .next 目錄。
env
了解如何在建置時於 Next.js 應用程式中新增與存取環境變數。
eslint
Next.js 在構建時預設會報告 ESLint 錯誤與警告。在此了解如何停用此行為。
exportPathMap
自訂使用 `next export` 時將匯出為 HTML 檔案的頁面。
generateBuildId
設定建置 ID,用於識別當前提供服務的應用程式建置版本。
generateEtags
Next.js 預設會為每個頁面產生 etag。在此瞭解如何停用 etag 產生功能。
headers
為你的 Next.js 應用程式新增自訂 HTTP 標頭 (headers)
httpAgentOptions
Next.js 預設會自動使用 HTTP Keep-Alive。進一步了解如何在此停用 HTTP Keep-Alive。
images
關於 next/image 加載器的自定義配置
onDemandEntries
設定 Next.js 在開發環境中如何釋放和保留記憶體中的頁面。
output
Next.js 會自動追蹤每個頁面所需的檔案,以便輕鬆部署您的應用程式。在此了解其運作原理。
pageExtensions
擴展 Next.js 在解析 Pages Router 中的頁面時所使用的預設頁面副檔名。
poweredByHeader
Next.js 預設會加入 `x-powered-by` 標頭。此處了解如何選擇停用此功能。
productionBrowserSourceMaps
在生產環境建置時啟用瀏覽器原始碼映射 (source map) 生成功能。
reactStrictMode
Next.js 完整運行時環境現已相容嚴格模式 (Strict Mode),了解如何啟用此功能
重新導向 (redirects)
為您的 Next.js 應用程式新增重新導向功能。
rewrites
在您的 Next.js 應用程式中新增 rewrites 功能。
執行時期設定 (Runtime Config)
為您的 Next.js 應用程式新增客戶端與伺服器端的執行時期設定 (runtime configuration)。
trailingSlash
設定 Next.js 頁面解析時是否包含尾部斜線。
transpilePackages
自動轉譯並打包來自本地套件(如 monorepos)或外部依賴項(`node_modules`)的相依套件。
turbo
設定 Next.js 的 Turbopack 專屬選項
typescript
Next.js 預設會報告 TypeScript 錯誤。在此了解如何停用此行為。
urlImports
配置 Next.js 以允許從外部 URL 導入模組 (實驗性功能)。
webpack
了解如何自訂 Next.js 使用的 webpack 設定
webVitalsAttribution
了解如何使用 webVitalsAttribution 選項來追蹤 Web Vitals 問題的來源。