next.config.js オプション
Next.js はプロジェクトディレクトリのルート(例えば package.json
と同じ階層)にある next.config.js
ファイルで設定できます。デフォルトエクスポートを使用します。
// @ts-check
/** @type {import('next').NextConfig} */
const nextConfig = {
/* ここに設定オプションを記述 */
}
module.exports = nextConfig
next.config.js
はJSONファイルではなく通常のNode.jsモジュールです。Next.jsサーバーとビルドフェーズで使用され、ブラウザのビルドには含まれません。
ECMAScriptモジュールが必要な場合は、next.config.mjs
を使用できます:
// @ts-check
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* ここに設定オプションを記述 */
}
export default nextConfig
関数を使用することも可能です:
// @ts-check
export default (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* ここに設定オプションを記述 */
}
return nextConfig
}
Next.js 12.1.0以降では非同期関数も使用できます:
// @ts-check
module.exports = async (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* ここに設定オプションを記述 */
}
return nextConfig
}
phase
は設定が読み込まれる現在のコンテキストです。利用可能なフェーズを確認できます。フェーズはnext/constants
からインポート可能です:
// @ts-check
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
return {
/* 開発環境専用の設定オプションをここに記述 */
}
}
return {
/* 開発環境以外の全フェーズ向け設定オプションをここに記述 */
}
}
コメント行はnext.config.js
で許可される設定を記述する場所で、このファイルで定義されています。
ただし、どの設定も必須ではなく、各設定の機能を理解する必要はありません。代わりに、このセクションで有効化または変更したい機能を検索すると、必要な手順が表示されます。
ターゲットのNode.jsバージョンで利用できない新しいJavaScript機能は使用しないでください。
next.config.js
はWebpack、Babel、TypeScriptによってパースされません。
このページでは利用可能なすべての設定オプションを解説しています:
appDir
レイアウト、ストリーミングなどの機能を使用するためにApp Routerを有効化
assetPrefix
CDNを設定するための assetPrefix 設定オプションの使用方法を学びます。
basePath
ドメインのサブパス配下にNext.jsアプリケーションをデプロイするために `basePath` を使用します。
圧縮
Next.js はレンダリングされたコンテンツと静的ファイルの圧縮に gzip を使用します。この機能はサーバーターゲットでのみ動作します。詳細について学びましょう。
crossOrigin
next/script で生成される script タグに crossOrigin タグを追加するための crossOrigin オプションの使用方法
devIndicators
最適化されたページには静的最適化が適用されていることを示すインジケーターが表示されます。ここではその設定を無効化できます。
distDir
デフォルトの .next ディレクトリの代わりに使用するカスタムビルドディレクトリを設定します。
環境変数
Next.jsアプリケーションに環境変数を追加し、ビルド時にアクセスする方法を学びます。
ESLint
Next.js はデフォルトでビルド時に ESLint のエラーと警告を報告します。この動作を無効にする方法を学びましょう。
exportPathMap
next export 使用時にHTMLファイルとしてエクスポートされるページをカスタマイズします。
generateBuildId
アプリケーションが提供されている現在のビルドを識別するために使用されるビルドIDを設定します。
generateEtags
Next.js はデフォルトで全てのページに etags を生成します。etag 生成を無効化する方法について学びましょう。
ヘッダー
Next.jsアプリケーションにカスタムHTTPヘッダーを追加する方法
httpAgentOptions
Next.js はデフォルトで HTTP Keep-Alive を自動的に使用します。HTTP Keep-Alive を無効にする方法について詳しく学びましょう。
画像
next/image ローダーのカスタム設定
cacheHandler
Redis、Memcached などの外部サービスを使用してデータを保存および再検証するための Next.js キャッシュを設定します。
instrumentationHook
instrumentationHook オプションを使用して Next.js アプリケーションにインストルメンテーションを設定します。
ロギング
Next.jsを開発モードで実行時に、データフェッチのログをコンソールに出力する方法を設定します。
mdxRs
App Router で新しい Rust コンパイラを使用して MDX ファイルをコンパイルします。
onDemandEntries
Next.js が開発環境で作成したページをメモリ上で保持・破棄する方法を設定します。
optimizePackageImports
Next.js 設定オプション optimizePackageImports の API リファレンス
output
Next.js は自動的に各ページに必要なファイルをトレースし、アプリケーションのデプロイを容易にします。その仕組みについて学びましょう。
pageExtensions
Pages Router でページを解決する際に Next.js が使用するデフォルトのページ拡張子を拡張します。
部分プリレンダリング (実験的機能)
Next.js 14 で部分プリレンダリング (実験的機能) を有効にする方法を学びます。
poweredByHeader
Next.js はデフォルトで `x-powered-by` ヘッダーを追加します。このヘッダーを無効化する方法について学びます。
productionBrowserSourceMaps
プロダクションビルド時にブラウザ向けソースマップの生成を有効化します。
reactStrictMode
Next.jsランタイム全体がStrict Mode準拠になりました。有効化方法を学びましょう
リダイレクト
Next.jsアプリケーションにリダイレクトを追加する方法
リライト
Next.jsアプリケーションにリライトを追加する方法
serverActions
Next.js アプリケーションにおけるサーバーアクション (Server Actions) の動作設定
serverComponentsExternalPackages
特定の依存関係をサーバーコンポーネントのバンドリングから除外し、ネイティブなNode.jsの `require` を使用します。
StaleTimes(実験的機能)
クライアントルーターキャッシュの無効化時間を上書きする方法を学びます。
trailingSlash
Next.js ページで末尾スラッシュの有無を設定する方法。
transpilePackages
ローカルパッケージ(モノレポなど)や外部依存関係(`node_modules`)から依存関係を自動的にトランスパイルおよびバンドルします。
turbo
Turbopack固有のオプションでNext.jsを設定する
typedRoutes
静的に型付けされたリンクの実験的サポートを有効化します。
TypeScript
Next.js はデフォルトで TypeScript エラーを報告します。この動作を無効にする方法について学びましょう。
URLインポート
Next.jsで外部URLからのモジュールインポートを許可する設定方法(実験的機能)。
webpack
Next.js で使用される webpack 設定をカスタマイズする方法を学びます
webVitalsAttribution
Web Vitals の問題の原因を特定するための webVitalsAttribution オプションの使用方法を学びます。