Menu

next CLI

Next.jsのCLIを使用すると、アプリケーションの開発、ビルド、起動などができます。

基本的な使用方法:

Terminal
npx next [command] [options]

リファレンス

以下のオプションが利用可能です:

オプション説明
-h または --help利用可能なすべてのオプションを表示
-v または --versionNext.jsのバージョン番号を出力

コマンド

以下のコマンドが利用可能です:

コマンド説明
devホットモジュールリローディング、エラー報告などを使用して、Next.jsを開発モードで起動します。
buildアプリケーションの最適化された本番ビルドを作成します。各ルートに関する情報を表示します。
startNext.jsを本番モードで起動します。アプリケーションは最初にnext buildでコンパイルされている必要があります。
infoNext.jsのバグを報告するために使用できる、現在のシステムに関する関連する詳細を出力します。
lint/src/app/pages/components/libディレクトリ内のすべてのファイルに対してESLintを実行します。また、ESLintがアプリケーションにまだ設定されていない場合、必要な依存関係をインストールするためのガイド付きセットアップも提供します。
telemetryNext.jsの完全に匿名のテレメトリー収集を有効または無効にできます。

補足: コマンドなしでnextを実行すると、next devのエイリアスになります。

next dev オプション

next devは、ホットモジュールリローディング(HMR)、エラー報告などを使用して、アプリケーションを開発モードで起動します。next devの実行時に利用可能なオプションは次のとおりです:

オプション説明
-h, --help利用可能なすべてのオプションを表示。
[directory]アプリケーションをビルドするディレクトリ。指定されない場合は、現在のディレクトリが使用されます。
--turbopackTurbopackを使用して開発モードを起動。
-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 認証局ファイルへのパス。
--experimental-upload-trace <traceUrl>デバッグトレースのサブセットをリモートHTTP URLに報告。

next build オプション

next buildは、アプリケーションの最適化された本番ビルドを作成します。出力には各ルートに関する情報が表示されます。例:

Terminal
Route (app)                              Size     First Load JS
 /_not-found                          0 B               0 kB
 ƒ /products/[id]                       0 B               0 kB
 
  (Static)   静的コンテンツとして事前レンダリング
ƒ  (Dynamic)  必要に応じてサーバーでレンダリング
  • Size:クライアントサイドでページに移動するときにダウンロードされるアセットのサイズ。各ルートのサイズには、そのルートの依存関係のみが含まれます。
  • First Load JS:サーバーからページを訪問するときにダウンロードされるアセットのサイズ。すべてで共有されるJSの量が別のメトリックとして表示されます。

これらの値はgzip圧縮されています。最初の読み込みは緑、黄、赤で示されます。パフォーマンスの高いアプリケーションを目指すには緑を目標にしてください。

next buildコマンドで利用可能なオプションは次のとおりです:

オプション説明
-h, --help利用可能なすべてのオプションを表示。
[directory]アプリケーションをビルドするディレクトリ。指定されない場合は、現在のディレクトリが使用されます。
-d または --debugより詳細なビルド出力を有効にします。このフラグを有効にすると、リライト、リダイレクト、ヘッダーなどの追加のビルド出力が表示されます。
--profile本番用のReactプロファイリングを有効にします。
--no-lintリンティングを無効にします。
--no-manglingマングリングを無効にします。パフォーマンスに影響を与える可能性があるため、デバッグ目的でのみ使用してください。
--experimental-app-onlyApp Routerのルートのみをビルドします。
--experimental-build-mode [mode]実験的なビルドモードを使用します。(選択肢:「compile」、「generate」、デフォルト:「default」)

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)、パッケージのバージョン(nextreactreact-dom)などが含まれます。

出力は以下のようになります:

Terminal
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 // 最新の利用可能なバージョンが検出されます(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/A

next info コマンドでは、以下のオプションが利用可能です:

オプション説明
-h または --helpすべての利用可能なオプションを表示します。
--verboseデバッグのために追加情報を収集します。

next lint オプション

next lint は、pages/app/components/lib/src/ ディレクトリ内のすべてのファイルでESLintを実行します。また、アプリケーションにESLintがまだ設定されていない場合、必要な依存関係をインストールするためのガイド付きセットアップも提供します。

next lint コマンドでは、以下のオプションが利用可能です:

オプション説明
[directory]アプリケーションをリントする基本ディレクトリ。指定されない場合は、カレントディレクトリが使用されます。
-d, --dir, <dirs...>リントを実行するディレクトリを含めます。
--file, <files...>リントを実行するファイルを含めます。
--ext, [exts...]JavaScriptファイルの拡張子を指定します。(デフォルト:[".js", ".mjs", ".cjs", ".jsx", ".ts", ".mts", ".cts", ".tsx"])
-c, --config, <config>この設定ファイルを使用し、他のすべての設定オプションを上書きします。
--resolve-plugins-relative-to, <rprt>プラグインを解決するディレクトリを指定します。
--strictNext.jsの厳密な設定を使用して .eslintrc.json ファイルを作成します。
--rulesdir, <rulesdir...>このディレクトリからの追加のルールを使用します。
--fixリント問題を自動的に修正します。
--fix-type <fixType>適用する修正のタイプを指定します(例:problem、suggestion、layout)。
--ignore-path <path>無視するファイルを指定します。
--no-ignore <path>--ignore-path オプションを無効にします。
--quietエラーのみを報告します。
--max-warnings [maxWarnings]非ゼロの終了コードをトリガーする警告の数を指定します。(デフォルト:-1)
-o, --output-file, <outputFile>レポートを書き込むファイルを指定します。
-f, --format, <format>特定の出力形式を使用します。
--no-inline-configコメントによる設定またはルールの変更を防止します。
--report-unused-disable-directives-severity <level>未使用のeslint-disable命令の重大度レベルを指定します。(選択肢:「error」、「off」、「warn」)
--no-cacheキャッシングを無効にします。
--cache-location, <cacheLocation>キャッシュの場所を指定します。
--cache-strategy, [cacheStrategy]キャッシュ内の変更されたファイルを検出するための戦略を指定します。(デフォルト:「metadata」)
--error-on-unmatched-pattern任意のファイルパターンが一致しない場合にエラーを報告します。
-h, --helpこのメッセージを表示します。

next telemetry オプション

Next.jsは、一般的な使用状況に関する完全に匿名のテレメトリデータを収集します。この匿名プログラムへの参加は任意であり、情報を共有したくない場合はオプトアウトできます。

next telemetry コマンドでは、以下のオプションが利用可能です:

オプション説明
-h, --helpすべての利用可能なオプションを表示します。
--enableNext.jsのテレメトリ収集を有効にします。
--disableNext.jsのテレメトリ収集を無効にします。

詳細はテレメトリについて学んでください。

デフォルトポートの変更

デフォルトでは、Next.jsは開発時とnext starthttp://localhost:3000を使用します。デフォルトのポートは -p オプションで変更できます:

Terminal
next dev -p 4000

または、PORT 環境変数を使用して:

Terminal
PORT=4000 next dev

補足: PORT.env では設定できません。HTTPサーバーの起動が他のコードの初期化の前に行われるためです。

開発中のHTTPS利用

Webhookや認証のような特定のユースケースでは、localhost上で安全な環境を確保するためにHTTPSを使用できます。Next.jsは--experimental-httpsフラグを使用してnext devで自己署名証明書を生成できます:

Terminal
next dev --experimental-https

生成された証明書を使用すると、Next.jsの開発サーバーはhttps://localhost:3000に存在します。デフォルトのポート3000は、-p--port、またはPORTでポートが指定されない限り使用されます。

--experimental-https-key--experimental-https-certを使用して、カスタム証明書と鍵を提供することもできます。オプションで、--experimental-https-caを使用してカスタムCA証明書を提供することもできます。

Terminal
next dev --experimental-https --experimental-https-key ./certificates/localhost-key.pem --experimental-https-cert ./certificates/localhost.pem

next dev --experimental-httpsは開発のみを目的としており、mkcertでローカルに信頼できる証明書を作成します。本番環境では、信頼できる認証局から適切に発行された証明書を使用してください。

補足: Vercelにデプロイする場合、HTTPSが自動的に設定されます。

ダウンストリームプロキシのタイムアウト設定

Next.jsをダウンストリームプロキシ(AWS ELB/ALBなどのロードバランサー)の背後にデプロイする場合、ダウンストリームプロキシのタイムアウトよりも_大きい_キープアライブタイムアウトを使用してNext.jsの基礎となるHTTPサーバーを設定することが重要です。そうしないと、特定のTCP接続でキープアライブタイムアウトに達すると、Node.jsはダウンストリームプロキシに通知せずにすぐにその接続を終了します。これにより、Node.jsが既に終了した接続を再利用しようとするたびにプロキシエラーが発生します。

本番のNext.jsサーバーのタイムアウト値を設定するには、next start--keepAliveTimeout(ミリ秒単位)を渡します:

Terminal
next start --keepAliveTimeout 70000

Node.jsの引数の受け渡し

任意のNodeの引数nextコマンドに渡すことができます。例:

Terminal
NODE_OPTIONS='--throw-deprecation' next
NODE_OPTIONS='-r esm' next
NODE_OPTIONS='--inspect' next