brand logo

ドキュメント

nuxt dev

dev コマンドは、http://localhost:3000 でホットモジュールリプレースメントを備えた開発サーバーを開始します。

Terminal
npx nuxt dev [ROOTDIR] [--cwd=<directory>] [--logLevel=<silent|info|verbose>] [--dotenv] [--envName] [--no-clear] [--no-fork] [-p, --port] [-h, --host] [--clipboard] [-o, --open] [--https] [--publicURL] [--qr] [--public] [--tunnel] [--sslCert] [--sslKey]

dev コマンドは、http://localhost:3000 でホットモジュールリプレースメントを備えた開発サーバーを開始します。

引数

引数説明
ROOTDIR="."作業ディレクトリを指定します(デフォルト: .

オプション

オプションデフォルト説明
--cwd=<directory>作業ディレクトリを指定します。これは ROOTDIR より優先されます(デフォルト: .
--logLevel=<silent|info|verbose>ビルド時のログレベルを指定します
--dotenvルートディレクトリからの相対パスで .env ファイルを読み込みます
--envName設定オーバーライドを解決する際に使用する環境(ビルド時はデフォルトで production、開発サーバー実行時は development
--no-clear再起動時にコンソールをクリアしない
--no-forkフォークモードを無効にする
-p, --portリッスンするポート(デフォルト: NUXT_PORT || NITRO_PORT || PORT || nuxtOptions.devServer.port
-h, --hostリッスンするホスト(デフォルト: NUXT_HOST || NITRO_HOST || HOST || nuxtOptions._layers?.[0]?.devServer?.host
--clipboardfalseURL をクリップボードにコピー
-o, --openfalseブラウザで URL を開く
--httpsHTTPS を有効にする
--publicURL表示される公開 URL(QR コード用)
--qr利用可能な場合、公開 URL の QR コードを表示
--publicすべてのネットワークインターフェースでリッスン
--tunnelhttps://github.com/unjs/untun を使用してトンネルを開く
--sslCert(非推奨) --https.cert を使用してください。
--sslKey(非推奨) --https.key を使用してください。

ポートとホストは、NUXT_PORT、PORT、NUXT_HOST または HOST 環境変数を介して設定することもできます。

上記のオプションに加えて、@nuxt/clilisthen にオプションを渡すことができます。例えば、--no-qr で開発サーバーの QR コードをオフにします。listhen オプションのリストは unjs/listhen のドキュメントで確認できます。

このコマンドは process.env.NODE_ENVdevelopment に設定します。

開発中に自己署名証明書を使用している場合、環境に NODE_TLS_REJECT_UNAUTHORIZED=0 を設定する必要があります。

tips

このセクションは公式ドキュメントの翻訳ではなく、本サイト独自の補足記事です。

Nuxt dev コマンドの補足解説

Nuxt の dev コマンドは、開発中に非常に便利なホットモジュールリプレースメント(HMR)機能を備えたローカルサーバーを起動します。これにより、コード変更を即座にブラウザに反映でき、開発効率が大幅に向上します。しかし、単にコマンドを実行するだけでなく、適切な使い方や注意点を理解することで、より快適でトラブルの少ない開発環境を構築できます。

本記事では、nuxt dev コマンドの基本的な特徴から、実務での活用例、よくある落とし穴まで丁寧に解説します。


まず結論:nuxt dev コマンドのポイント

  • ローカル開発サーバーを起動し、ホットモジュールリプレースメントで即時反映を実現
  • 環境変数やポート、ホストの指定が柔軟に可能
  • HTTPS対応やQRコード表示など便利なオプションも利用できる
  • 開発時のログレベル調整やコンソールクリアの制御も可能
  • 自己署名証明書利用時は環境変数設定が必要

いつ使うべきか? 使わない方がよいケース

使うべきケース

  • 日常的な開発作業
    コードを書きながら即座にブラウザで動作確認したいときに最適です。HMRによりページ全体のリロードなしで変更が反映されるため、開発効率が大幅に向上します。

  • UIやスタイルの調整
    フロントエンドの見た目を頻繁に変更する際、即時反映があることでストレスなく作業できます。

  • APIやサーバーサイドロジックの開発中
    サーバーサイドのコードもホットリロードされるため、バックエンドの修正もスムーズです。

使わない方がよいケース

  • 本番環境のテストやデプロイ
    dev コマンドは開発用であり、本番環境向けの最適化やセキュリティ設定はされていません。実際の公開環境では nuxt buildnuxt start を使いましょう。

  • パフォーマンス検証
    開発サーバーはデバッグや利便性重視のため、パフォーマンスは本番環境と異なります。負荷テストや速度測定は本番ビルドで行うべきです。


実務でよくあるユースケースとサンプルコード

1. ポートやホストを指定して複数プロジェクトを同時起動

複数の Nuxt プロジェクトを同時に開発する場合、ポートやホストを明示的に指定すると便利です。

npx nuxt dev --port 3001 --host 0.0.0.0

これにより、ローカルネットワーク上の他のデバイスからもアクセス可能になります。

2. HTTPS対応のローカル開発環境構築

自己署名証明書を使って HTTPS で開発したい場合、--https オプションを利用します。

npx nuxt dev --https

ただし、自己署名証明書を使う場合は環境変数 NODE_TLS_REJECT_UNAUTHORIZED=0 を設定しないと通信エラーになることがあります。

3. 環境変数ファイルを読み込んで設定を切り替える

.env ファイルを使って環境ごとに設定を切り替えたい場合は、--dotenv オプションを使います。

npx nuxt dev --dotenv

これにより、開発時に必要なAPIキーや設定を簡単に管理できます。


よくある落とし穴・注意点

1. SSR と CSR の違いによる挙動の違い

nuxt dev は SSR(サーバーサイドレンダリング)を前提に動作しますが、HMR によるクライアント側の再描画とサーバー側のレンダリング結果が不整合になることがあります。特に状態管理や非同期処理のタイミングに注意が必要です。

2. Hydration エラーの発生

開発中にコンポーネントの初期状態がサーバーとクライアントで異なると、Hydration エラーが発生します。これは HMR の影響で状態が不整合になることが原因です。状態の初期化や副作用の管理を慎重に行いましょう。

3. パフォーマンスの過信は禁物

dev コマンドは開発用に最適化されていないため、ビルド時間やレスポンス速度は本番環境より遅いです。パフォーマンス改善の検証は必ず本番ビルドで行いましょう。

4. コンソールのクリア設定に注意

デフォルトでは再起動時にコンソールがクリアされますが、--no-clear オプションでこれを無効化できます。ログを追いたい場合は設定を検討してください。


まとめ

Nuxt の dev コマンドは、開発効率を大幅に向上させる強力なツールです。ホットモジュールリプレースメントにより即時反映が可能で、柔軟なオプションで環境に合わせた設定ができます。ただし、本番環境とは異なる挙動やパフォーマンスの違いがあるため、適切な使い分けと注意が必要です。

実務ではポート指定やHTTPS対応、環境変数管理などのオプションを活用し、快適な開発環境を整えましょう。落とし穴を理解しつつ使いこなすことで、Nuxt 開発がよりスムーズになります。


自己署名証明書を使う場合は、必ず NODE_TLS_REJECT_UNAUTHORIZED=0 を設定しておくことを忘れないでください。これを設定しないと HTTPS 通信が失敗します。

dev コマンドは開発用です。公開環境では必ず buildstart コマンドを使いましょう。