next CLI

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

基本的な使用方法:

Terminal
npx next [コマンド] [オプション]

リファレンス

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

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

コマンド

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

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

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

next dev オプション

next dev は Hot Module Reloading (HMR)、エラー報告などを備えた開発モードでアプリケーションを起動します。next dev を実行する際に以下のオプションが利用可能です:

オプション説明
-h, --help利用可能なすべてのオプションを表示。
[directory]アプリケーションをビルドするディレクトリ。指定されない場合は現在のディレクトリが使用されます。
--turbopackTurbopack を使用して開発モードを起動します。
-p または --port <port>アプリケーションを起動するポート番号を指定します。デフォルト: 3000, 環境変数: PORT
-H または --hostname <hostname>アプリケーションを起動するホスト名を指定します。ネットワーク上の他のデバイスからアプリケーションを利用可能にする場合に便利です。デフォルト: 0.0.0.0
--experimental-httpsHTTPS でサーバーを起動し、自己署名証明書を生成します。
--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詳細なビルド出力を有効にします。このフラグを有効にすると、リライト、リダイレクト、ヘッダーなどの追加のビルド出力が表示されます。
--profileReact のプロダクション プロファイリング を有効にします。
--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 infoGitHub イシュー を開く際に Next.js のバグ報告に使用できる現在のシステムに関する詳細情報を出力します。この情報には、オペレーティングシステムのプラットフォーム/アーキテクチャ/バージョン、バイナリ (Node.js, npm, Yarn, pnpm)、パッケージバージョン (next, react, react-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 lintpages/app/components/lib/src/ ディレクトリ内のすべてのファイルに対して ESLint を実行します。また、ESLint がアプリケーションに設定されていない場合、必要な依存関係をインストールするためのガイド付きセットアップも提供されます。

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

オプション説明
[directory]リンターを実行するベースディレクトリ。指定されない場合は現在のディレクトリが使用されます。
-d, --dir, <dirs...>ESLint を実行するディレクトリを指定します。
--file, <files...>ESLint を実行するファイルを指定します。
--ext, [exts...]JavaScript ファイルの拡張子を指定します。(デフォルト: [".js", ".mjs", ".cjs", ".jsx", ".ts", ".mts", ".cts", ".tsx"])
-c, --config, <config>この設定ファイルを使用し、他のすべての設定オプションを上書きします。
--resolve-plugins-relative-to, <rprt>プラグインを解決するディレクトリを指定します。
--strictNext.js の strict 設定を使用して .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 start 実行時に http://localhost:3000 を使用します。デフォルトポートは -p オプションで変更できます:

Terminal
next dev -p 4000

または PORT 環境変数を使用することも可能です:

Terminal
PORT=4000 next dev

補足: PORT.env ファイルでは設定できません。HTTPサーバ゙ーが起動する際には他のコードが初期化される前であるためです。

開発時の HTTPS 使用

ウェブフックや認証などの特定のユースケースでは、HTTPS を使用して localhost 上で安全な環境を構築できます。Next.js は --experimental-https フラグを指定した next dev で自己署名証明書を生成できます:

Terminal
next dev --experimental-https

生成された証明書により、Next.js 開発サーバーは https://localhost:3000 で利用可能になります。-p--port、または PORT でポートが指定されていない場合、デフォルトのポート 3000 が使用されます。

--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 を使用してローカルで信頼された証明書を作成します。本番環境では、信頼できる認証局から発行された適切な証明書を使用してください。

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

Next.js をダウンストリームプロキシ(例: AWS ELB/ALB のようなロードバランサー)の背後にデプロイする場合、Next.js の基盤となる HTTP サーバ゙ーにダウンストリームプロキシのタイムアウトよりも長い keep-alive タイムアウト を設定することが重要です。そうしないと、TCP 接続の keep-alive タイムアウトに達した場合、Node.js はダウンストリームプロキシに通知することなくその接続を直ちに終了します。これにより、Node.js がすでに終了した接続をプロキシが再利用しようとするたびにプロキシエラーが発生します。

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

Terminal
next start --keepAliveTimeout 70000

Node.js 引数の渡し方

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

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