next CLI
Next.js CLI を使用すると、アプリケーションの開発、ビルド、起動などを行うことができます。
基本的な使用方法:
リファレンス
以下のオプションが利用可能です:
オプション | 説明 |
---|---|
-h または --help | 利用可能なすべてのオプションを表示 |
-v または --version | Next.js のバージョン番号を出力 |
コマンド
以下のコマンドが利用可能です:
コマンド | 説明 |
---|---|
dev | Hot Module Reloading (HMR) やエラー報告などを備えた開発モードで Next.js を起動します。 |
build | アプリケーションの最適化されたプロダクションビルドを作成します。各ルートに関する情報を表示します。 |
start | プロダクションモードで Next.js を起動します。まず next build でアプリケーションをコンパイルする必要があります。 |
info | Next.js のバグ報告に使用できる現在のシステムに関する詳細情報を出力します。 |
lint | /src 、/app 、/pages 、/components 、/lib ディレクトリ内のすべてのファイルに対して ESLint を実行します。ESLint がアプリケーションに設定されていない場合、必要な依存関係をインストールするためのガイド付きセットアップも提供されます。 |
telemetry | Next.js の完全に匿名のテレメトリ収集を有効または無効にできます。 |
豆知識:
next
をコマンドなしで実行するとnext dev
のエイリアスになります。
next dev
オプション
next dev
は Hot Module Reloading (HMR)、エラー報告などを備えた開発モードでアプリケーションを起動します。next dev
を実行する際に以下のオプションが利用可能です:
オプション | 説明 |
---|---|
-h, --help | 利用可能なすべてのオプションを表示。 |
[directory] | アプリケーションをビルドするディレクトリ。指定されない場合は現在のディレクトリが使用されます。 |
--turbopack | Turbopack を使用して開発モードを起動します。 |
-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
はアプリケーションの最適化されたプロダクションビルドを作成します。出力には各ルートに関する情報が表示されます。例:
- Size: クライアントサイドでページにナビゲートする際にダウンロードされるアセットのサイズ。各ルートのサイズにはその依存関係のみが含まれます。
- First Load JS: サーバーからページを訪問する際にダウンロードされるアセットのサイズ。すべてで共有される JS の量は別の指標として表示されます。
これらの値は両方とも gzip で圧縮 されています。初回読み込みは緑、黄、赤で表示されます。パフォーマンスの高いアプリケーションのためには緑を目指してください。
next build
コマンドには以下のオプションが利用可能です:
オプション | 説明 |
---|---|
-h, --help | 利用可能なすべてのオプションを表示。 |
[directory] | アプリケーションをビルドするディレクトリ。指定されない場合は現在のディレクトリが使用されます。 |
-d または --debug | 詳細なビルド出力を有効にします。このフラグを有効にすると、リライト、リダイレクト、ヘッダーなどの追加のビルド出力が表示されます。 |
--profile | React のプロダクション プロファイリング を有効にします。 |
--no-lint | リンターを無効にします。 |
--no-mangling | マングリング を無効にします。パフォーマンスに影響する可能性があり、デバッグ目的でのみ使用してください。 |
--experimental-app-only | App 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 イシュー を開く際に Next.js のバグ報告に使用できる現在のシステムに関する詳細情報を出力します。この情報には、オペレーティングシステムのプラットフォーム/アーキテクチャ/バージョン、バイナリ (Node.js, npm, Yarn, pnpm)、パッケージバージョン (next
, react
, react-dom
) などが含まれます。
出力は次のようになります:
next info
コマンドには以下のオプションが利用可能です:
オプション | 説明 |
---|---|
-h または --help | 利用可能なすべてのオプションを表示 |
--verbose | デバッグのための追加情報を収集します。 |
next lint
オプション
next lint
は pages/
、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> | プラグインを解決するディレクトリを指定します。 |
--strict | Next.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 | 利用可能なすべてのオプションを表示。 |
--enable | Next.js のテレメトリ収集を有効にします。 |
--disable | Next.js のテレメトリ収集を無効にします。 |
テレメトリ について詳しく学ぶ。
例
デフォルトポートの変更
デフォルトでは、Next.js は開発時および next start
実行時に http://localhost:3000
を使用します。デフォルトポートは -p
オプションで変更できます:
または PORT
環境変数を使用することも可能です:
補足:
PORT
は.env
ファイルでは設定できません。HTTPサーバ゙ーが起動する際には他のコードが初期化される前であるためです。
開発時の HTTPS 使用
ウェブフックや認証などの特定のユースケースでは、HTTPS を使用して localhost
上で安全な環境を構築できます。Next.js は --experimental-https
フラグを指定した next dev
で自己署名証明書を生成できます:
生成された証明書により、Next.js 開発サーバーは https://localhost:3000
で利用可能になります。-p
、--port
、または PORT
でポートが指定されていない場合、デフォルトのポート 3000
が使用されます。
--experimental-https-key
と --experimental-https-cert
でカスタム証明書とキーを提供することも可能です。オプションで --experimental-https-ca
でカスタム CA 証明書も提供できます。
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
(ミリ秒単位)を渡します:
Node.js 引数の渡し方
Node.js 引数 を next
コマンドに渡すことができます。例: