next CLI
Next.jsのCLIを使用すると、アプリケーションの開発、ビルド、起動などができます。
基本的な使用方法:
リファレンス
以下のオプションが利用可能です:
オプション | 説明 |
---|---|
-h または --help | 利用可能なすべてのオプションを表示 |
-v または --version | Next.jsのバージョン番号を出力 |
コマンド
以下のコマンドが利用可能です:
コマンド | 説明 |
---|---|
dev | ホットモジュールリローディング、エラー報告などを使用して、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
は、ホットモジュールリローディング(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の issueを開く際の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...> | リントを実行するディレクトリを含めます。 |
--file, <files...> | リントを実行するファイルを含めます。 |
--ext, [exts...] | JavaScriptファイルの拡張子を指定します。(デフォルト:[".js", ".mjs", ".cjs", ".jsx", ".ts", ".mts", ".cts", ".tsx"]) |
-c, --config, <config> | この設定ファイルを使用し、他のすべての設定オプションを上書きします。 |
--resolve-plugins-relative-to, <rprt> | プラグインを解決するディレクトリを指定します。 |
--strict | Next.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 | すべての利用可能なオプションを表示します。 |
--enable | Next.jsのテレメトリ収集を有効にします。 |
--disable | Next.jsのテレメトリ収集を無効にします。 |
詳細はテレメトリについて学んでください。
例
デフォルトポートの変更
デフォルトでは、Next.jsは開発時とnext start
でhttp://localhost:3000
を使用します。デフォルトのポートは -p
オプションで変更できます:
または、PORT
環境変数を使用して:
補足:
PORT
は.env
では設定できません。HTTPサーバーの起動が他のコードの初期化の前に行われるためです。
開発中のHTTPS利用
Webhookや認証のような特定のユースケースでは、localhost
上で安全な環境を確保するためにHTTPSを使用できます。Next.jsは--experimental-https
フラグを使用してnext dev
で自己署名証明書を生成できます:
生成された証明書を使用すると、Next.jsの開発サーバーはhttps://localhost:3000
に存在します。デフォルトのポート3000
は、-p
、--port
、またはPORT
でポートが指定されない限り使用されます。
--experimental-https-key
と--experimental-https-cert
を使用して、カスタム証明書と鍵を提供することもできます。オプションで、--experimental-https-ca
を使用してカスタムCA証明書を提供することもできます。
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
(ミリ秒単位)を渡します:
Node.jsの引数の受け渡し
任意のNodeの引数をnext
コマンドに渡すことができます。例: