Next.js プロジェクト構造

このページでは、Next.jsアプリケーションのプロジェクト構造について概説します。トップレベルのファイルとフォルダ、設定ファイル、および apppages ディレクトリ内のルーティング規則について説明します。

各命名規則の詳細については、ファイル名やフォルダ名をクリックして確認してください。

トップレベルフォルダ

トップレベルフォルダは、アプリケーションのコードと静的アセットを整理するために使用されます。

ルートセグメントからパスセグメントへの対応
appApp Router
pagesPages Router
public配信される静的アセット
srcオプションのアプリケーションソースフォルダ

トップレベルファイル

トップレベルファイルは、アプリケーションの設定、依存関係の管理、ミドルウェアの実行、監視ツールの統合、環境変数の定義に使用されます。

Next.js
next.config.jsNext.jsの設定ファイル
package.jsonプロジェクトの依存関係とスクリプト
instrumentation.tsOpenTelemetryとインストルメンテーションファイル
middleware.tsNext.jsリクエストミドルウェア
.env環境変数
.env.localローカル環境変数
.env.production本番環境変数
.env.development開発環境変数
.eslintrc.jsonESLintの設定ファイル
.gitignoreGitで無視するファイルとフォルダ
next-env.d.tsNext.jsのTypeScript宣言ファイル
tsconfig.jsonTypeScriptの設定ファイル
jsconfig.jsonJavaScriptの設定ファイル

app ルーティング規則

以下のファイル命名規則は、app ルーターでルートを定義し、メタデータを処理するために使用されます。

ルーティングファイル

layout.js .jsx .tsxレイアウト
page.js .jsx .tsxページ
loading.js .jsx .tsxローディングUI
not-found.js .jsx .tsx404 UI
error.js .jsx .tsxエラーUI
global-error.js .jsx .tsxグローバルエラーUI
route.js .tsAPIエンドポイント
template.js .jsx .tsx再レンダリングされるレイアウト
default.js .jsx .tsx並列ルートのフォールバックページ

ネストされたルート

folderルートセグメント
folder/folderネストされたルートセグメント

ダイナミックルート

[folder]ダイナミックルートセグメント
[...folder]キャッチオールルートセグメント
[[...folder]]オプションのキャッチオールルートセグメント

ルートグループとプライベートフォルダ

(folder)ルーティングに影響を与えずにルートをグループ化
_folderフォルダと子セグメントをルーティングから除外

並列ルートとインターセプトルート

@folder名前付きスロット
(.)folder同じレベルでインターセプト
(..)folder1レベル上でインターセプト
(..)(..)folder2レベル上でインターセプト
(...)folderルートからインターセプト

メタデータファイル規則

アプリアイコン

favicon.icoファビコンファイル
icon.ico .jpg .jpeg .png .svgアプリアイコンファイル
icon.js .ts .tsx生成されたアプリアイコン
apple-icon.jpg .jpeg, .pngAppleアプリアイコンファイル
apple-icon.js .ts .tsx生成されたAppleアプリアイコン

Open GraphとTwitter画像

opengraph-image.jpg .jpeg .png .gifOpen Graph画像ファイル
opengraph-image.js .ts .tsx生成されたOpen Graph画像
twitter-image.jpg .jpeg .png .gifTwitter画像ファイル
twitter-image.js .ts .tsx生成されたTwitter画像

SEO

sitemap.xmlサイトマップファイル
sitemap.js .ts生成されたサイトマップ
robots.txtrobotsファイル
robots.js .ts生成されたrobotsファイル

pages ルーティング規則

以下のファイル命名規則は、pages ルーターでルートを定義するために使用されます。

特別なファイル

_app.js .jsx .tsxカスタムApp
_document.js .jsx .tsxカスタムDocument
_error.js .jsx .tsxカスタムエラーページ
404.js .jsx .tsx404エラーページ
500.js .jsx .tsx500エラーページ

ルート

フォルダ規則
index.js .jsx .tsxホームページ
folder/index.js .jsx .tsxネストされたページ
ファイル規則
index.js .jsx .tsxホームページ
file.js .jsx .tsxネストされたページ

ダイナミックルート

フォルダ規則
[folder]/index.js .jsx .tsxダイナミックルートセグメント
[...folder]/index.js .jsx .tsxキャッチオールルートセグメント
[[...folder]]/index.js .jsx .tsxオプションのキャッチオールルートセグメント
ファイル規則
[file].js .jsx .tsxダイナミックルートセグメント
[...file].js .jsx .tsxキャッチオールルートセグメント
[[...file]].js .jsx .tsxオプションのキャッチオールルートセグメント