next CLI
Next.js CLIを使用すると、アプリケーションの開発、ビルド、起動などを行うことができます。
基本的な使い方
npx next [command] [options]リファレンス
利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h または --help | 利用可能なすべてのオプションを表示します。 |
-v または --version | Next.js のバージョン番号を出力します。 |
コマンド
利用可能なコマンドは以下の通りです。
| コマンド | 説明 |
|---|---|
dev | ホットモジュールリローディング、エラーレポートなどを備えた開発モードでNext.jsを起動します。 |
build | アプリケーションの最適化された本番ビルドを作成します。各ルートに関する情報を表示します。 |
start | 本番モードでNext.jsを起動します。アプリケーションは最初にnext buildでコンパイルされている必要があります。 |
info | Next.jsのバグ報告に使用できる、現在のシステムに関する関連詳細を表示します。 |
telemetry | Next.jsの完全に匿名化されたテレメトリ収集を有効または無効にできます。 |
typegen | 完全なビルドを実行せずに、ルート、ページ、レイアウト、ルートハンドラーのTypeScript定義を生成します。 |
知っておくと良いこと:コマンドなしで
nextを実行するとnext devのエイリアスになります。
next dev オプション
next dev は、ホットモジュールリローディング (HMR)、エラーレポートなどを備えた開発モードでアプリケーションを起動します。next dev を実行する際に利用できるオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h, --help | 利用可能なすべてのオプションを表示します。 |
[directory] | アプリケーションをビルドするディレクトリ。指定しない場合はカレントディレクトリが使用されます。 |
--turbopack | Turbopack を強制的に有効にします(デフォルトで有効)。--turbo としても利用可能です。 |
--webpack | 開発用に、デフォルトのTurbopackバンダーの代わりにWebpackを使用します。 |
-p または --port <port> | アプリケーションを起動するポート番号を指定します。デフォルト:3000、環境変数:PORT |
-Hまたは--hostname <hostname> | アプリケーションを起動するホスト名を指定します。ネットワーク上の他のデバイスでアプリケーションを利用可能にする場合に便利です。デフォルト:0.0.0.0 |
--experimental-https | HTTPSでサーバーを起動し、自己署名証明書を生成します。 |
--experimental-https-key <path> | HTTPSキーファイルのパス。 |
--experimental-https-cert <path> | HTTPS証明書ファイルのパス。 |
--experimental-https-ca <path> | HTTPS認証局(CA)証明書ファイルのパス。 |
--experimental-upload-trace <traceUrl> | デバッグトレースの一部をリモートHTTP URLにレポートします。 |
next build オプション
next build は、アプリケーションの最適化された本番ビルドを作成します。出力には各ルートに関する情報が表示されます。例:
Route (app)
┌ ○ /_not-found
└ ƒ /products/[id]
○ (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demandnext build コマンドで利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h, --help | 利用可能なすべてのオプションを表示します。 |
[directory] | アプリケーションをビルドするディレクトリ。指定しない場合はカレントディレクトリが使用されます。 |
--turbopack | Turbopack を強制的に有効にします(デフォルトで有効)。--turbo としても利用可能です。 |
--webpack | Webpack を使用してビルドします。 |
-d または --debug | より詳細なビルド出力を有効にします。このフラグを有効にすると、リライト、リダイレクト、ヘッダーなどの追加のビルド出力が表示されます。 |
--profile | 本番環境のReactプロファイリングを有効にします。 |
--no-lint | リンティングを無効にします。注意:リンティングはNext 16でnext buildから削除されます。Next 15.5以降でeslint以外のリンターを使用している場合、ビルド中のリンティングは行われません。 |
--no-mangling | マンブリング(mangling)を無効にします。これはパフォーマンスに影響を与える可能性があり、デバッグ目的でのみ使用してください。 |
--experimental-app-only | App Routerのルートのみをビルドします。 |
--experimental-build-mode [mode] | 実験的なビルドモードを使用します。(選択肢: "compile", "generate", デフォルト: "default") |
--debug-prerender | 開発環境でのレンダリングエラーをデバッグします。 |
--debug-build-paths=<patterns> | デバッグ用に特定のルートのみをビルドします。 |
next start オプション
next start は、本番モードでアプリケーションを起動します。アプリケーションはnext buildでコンパイルされている必要があります。
next start コマンドで利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h または --help | 利用可能なすべてのオプションを表示します。 |
[directory] | アプリケーションを起動するディレクトリ。ディレクトリが指定されていない場合は、カレントディレクトリが使用されます。 |
-p または --port <port> | アプリケーションを起動するポート番号を指定します。(デフォルト:3000、環境変数:PORT) |
-H または --hostname <hostname> | アプリケーションを起動するホスト名を指定します(デフォルト:0.0.0.0)。 |
--keepAliveTimeout <keepAliveTimeout> | 非アクティブな接続を閉じる前に待機する最大ミリ秒数を指定します。 |
next info オプション
next info は、GitHub issue を開く際にNext.jsのバグ報告に使用できる、現在のシステムに関する関連詳細を表示します。この情報には、オペレーティングシステムのプラットフォーム/アーキテクチャ/バージョン、バイナリ(Node.js、npm、Yarn、pnpm)、パッケージバージョン(next、react、react-dom)などが含まれます。
出力はこのようになります
Operating System:
Platform: darwin
Arch: arm64
Version: Darwin Kernel Version 23.6.0
Available memory (MB): 65536
Available CPU cores: 10
Binaries:
Node: 20.12.0
npm: 10.5.0
Yarn: 1.22.19
pnpm: 9.6.0
Relevant Packages:
next: 15.0.0-canary.115 // Latest available version is detected (15.0.0-canary.115).
eslint-config-next: 14.2.5
react: 19.0.0-rc
react-dom: 19.0.0
typescript: 5.5.4
Next.js Config:
output: N/Anext info コマンドで利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h または --help | 利用可能なすべてのオプションを表示 |
--verbose | デバッグのために追加情報を収集します。 |
next telemetry オプション
Next.js は、一般的な使用方法に関する完全に匿名化されたテレメトリデータを収集します。この匿名プログラムへの参加は任意であり、情報を共有したくない場合はオプトアウトできます。
next telemetry コマンドで利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h, --help | 利用可能なすべてのオプションを表示します。 |
--enable | Next.jsのテレメトリ収集を有効にします。 |
--disable | Next.jsのテレメトリ収集を無効にします。 |
テレメトリについてさらに学ぶ。
next typegen オプション
next typegen は、完全なビルドを実行せずに、アプリケーションのルートのTypeScript定義を生成します。これは、IDEのオートコンプリートやCIでのルート使用状況の型チェックに役立ちます。
以前は、ルート型はnext devまたはnext buildの実行中にのみ生成されていたため、tsc --noEmitを直接実行してもルート型は検証されませんでした。これで、型を個別に生成し、外部で検証できるようになりました。
# Generate route types first, then validate with TypeScript
next typegen && tsc --noEmit
# Or in CI workflows for type checking without building
next typegen && npm run type-checknext typegen コマンドで利用可能なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
-h, --help | 利用可能なすべてのオプションを表示します。 |
[directory] | 型を生成するディレクトリ。指定しない場合はカレントディレクトリが使用されます。 |
出力ファイルは<distDir>/types(デフォルト:.next/types)に書き込まれます。
next typegen
# or for a specific app
next typegen ./apps/web知っておくと良いこと:
next typegenは、本番ビルドフェーズを使用してNext.jsの設定(next.config.js、next.config.mjs、またはnext.config.ts)をロードします。設定が正しくロードされるように、必要な環境変数と依存関係が利用可能であることを確認してください。
例
レンダリングエラーのデバッグ
next build中にレンダリングエラーが発生した場合、--debug-prerenderフラグを渡して、より詳細な出力を取得できます。
next build --debug-prerenderこれにより、デバッグを容易にするためのいくつかの実験的なオプションが有効になります。
- サーバーコードの最小化を無効にします。
experimental.serverMinification = falseexperimental.turbopackMinify = false
- サーバーバンドルのソースマップを生成します。
experimental.serverSourceMaps = true
- レンダリングに使用される子プロセスでソースマップの消費を有効にします。
enablePrerenderSourceMaps = true
- 最初のレンダリングエラーが発生した後もビルドを続行し、すべての問題を一度に確認できるようにします。
experimental.prerenderEarlyExit = false
これにより、ビルド出力でより読みやすいスタックトレースとコードフレームが表示されます。
注意:
--debug-prerenderは開発中のデバッグ専用です。--debug-prerenderで生成されたビルドを本番環境にデプロイしないでください。パフォーマンスに影響を与える可能性があります。
特定のルートのビルド
--debug-build-paths オプションを使用して、App RouterとPages Routerの特定のルートのみをビルドできます。これは、大規模なアプリケーションで作業する際のデバッグを高速化するのに役立ちます。--debug-build-paths オプションは、カンマ区切りのファイルパスを受け入れ、グロブパターンもサポートします。
# Build a specific route
next build --debug-build-paths="app/page.tsx"
# Build more than one route
next build --debug-build-paths="app/page.tsx,pages/index.tsx"
# Use glob patterns
next build --debug-build-paths="app/**/page.tsx"
next build --debug-build-paths="pages/*.tsx"デフォルトポートの変更
デフォルトでは、Next.jsは開発中およびnext startとともにhttps://:3000を使用します。デフォルトポートは、-pオプションを使用して次のように変更できます。
next dev -p 4000またはPORT環境変数を使用します。
PORT=4000 next dev知っておくと良いこと:HTTPサーバーの起動は他のコードの初期化よりも前に行われるため、
.envでPORTを設定することはできません。
開発中のHTTPSの使用
Webhooksや認証などの特定のユースケースでは、localhostで安全な環境を維持するためにHTTPSを使用できます。Next.jsはnext devで--experimental-httpsフラグを使用して自己署名証明書を生成できます。
next dev --experimental-https生成された証明書を使用すると、Next.js開発サーバーはhttps://:3000で動作します。ポートが-p、--port、またはPORTで指定されていない限り、デフォルトポート3000が使用されます。
--experimental-https-keyおよび--experimental-https-certを使用してカスタム証明書とキーを提供することもできます。オプションで、--experimental-https-caを使用してカスタムCA証明書を提供することもできます。
next dev --experimental-https --experimental-https-key ./certificates/localhost-key.pem --experimental-https-cert ./certificates/localhost.pemnext dev --experimental-https は開発専用であり、mkcertでローカルに信頼される証明書を作成します。本番環境では、信頼された認証局から発行された正規の証明書を使用してください。
下流プロキシのタイムアウト設定
Next.jsを下流プロキシ(例:AWS ELB/ALBのようなロードバランサー)の背後でデプロイする場合、Nextの基盤となるHTTPサーバーに、下流プロキシのタイムアウトよりも大きいキープアライブタイムアウトを設定することが重要です。そうしないと、TCP接続のキープアライブタイムアウトに達すると、Node.jsは下流プロキシに通知せずにその接続を直ちに終了します。これにより、Node.jsが既に終了した接続を再利用しようとした場合にプロキシエラーが発生します。
本番Next.jsサーバーのタイムアウト値を設定するには、次のようにnext startに--keepAliveTimeout(ミリ秒単位)を渡します。
next start --keepAliveTimeout 70000Node.js引数の渡し方
nextコマンドに任意のnode引数を渡すことができます。例:
NODE_OPTIONS='--throw-deprecation' next
NODE_OPTIONS='-r esm' next
NODE_OPTIONS='--inspect' next| バージョン | 変更履歴 |
|---|---|
v16.0.0 | JSバンドルサイズメトリクスがnext buildから削除されました |
v15.5.0 | next typegenコマンドを追加 |
v15.4.0 | レンダリングエラーのデバッグを支援するために、next buildに--debug-prerenderオプションを追加します。 |
役に立ちましたか?