メインコンテンツまでスキップ

next CLI

Next.js CLIは、アプリケーションの開発、ビルド、開始などをサポートします。

基本的な使用方法:

Terminal
npx next [command] [options]

参照

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

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

コマンド

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

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

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

next dev オプション

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

オプション説明
-h, --help利用可能なすべてのオプションを表示します。
[directory]アプリケーションをビルドするディレクトリ。指定しない場合は現在のディレクトリが使用されます。
--turbopackTurbopackを使用して開発モードを開始します。
-p または --port <port>アプリケーションを開始するポート番号を指定します。デフォルト:3000、env: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) prerendered as static content
ƒ (Dynamic) server-rendered on demand
  • 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、env: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 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の厳格な設定を使用して.eslintrc.jsonファイルを作成します。
--rulesdir, <rulesdir...>このディレクトリから追加のルールを使用します。
--fixリンティングの問題を自動的に修正します。
--fix-type <fixType>適用する修正の種類を指定します(例えば、問題、提案、レイアウト)。
--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

Good to know: PORT.envに設定することはできません。HTTPサーバーの起動は他のコードが初期化される前に行われます。

開発中にHTTPSを使用する

Webhooksや認証のような特定のユースケースのために、localhost上で安全な環境を持つために HTTPSを使用することができます。 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でローカルに信頼される証明書を作成します。プロダクションでは、信頼できる機関から適切に発行された証明書を使用してください。

Good to know: Vercelにデプロイする際は、Next.jsアプリケーションのためにHTTPSが自動的に設定されます

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

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

プロダクションNext.jsサーバーのタイムアウト値を設定するには、 next start--keepAliveTimeout(ミリ秒単位)を渡すことで行います。例えば:

Terminal
next start --keepAliveTimeout 70000

Node.js引数を渡す

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

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