brand logo

ドキュメント

nuxt analyze

Nuxt アプリケーションのプロダクションバンドルを分析します。

Terminal
npx nuxt analyze [ROOTDIR] [--cwd=<directory>] [--logLevel=<silent|info|verbose>] [--dotenv] [--name=<name>] [--no-serve]

analyze コマンドは Nuxt をビルドし、プロダクションバンドルを分析します(実験的機能)。

引数

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

オプション

オプションデフォルト説明
--cwd=<directory>作業ディレクトリを指定します。これは ROOTDIR よりも優先されます(デフォルト: .
--logLevel=<silent|info|verbose>ビルド時のログレベルを指定します
--dotenvルートディレクトリからの相対パスで .env ファイルを読み込みます
--name=<name>default分析の名前
--no-serve分析結果の提供をスキップします

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

tips

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

Nuxt analyze コマンドとは? — 何が嬉しいのか

Nuxt analyze コマンドは、Nuxt アプリケーションのプロダクションビルド後のバンドル内容を可視化・分析するためのツールです。
これにより、どのモジュールやライブラリがどれだけのサイズを占めているか、どの部分がパフォーマンスに影響しているかを直感的に把握できます。

特に以下のような課題を解決できます。

  • バンドルサイズが大きくてページの初期表示が遅い問題の原因特定
  • 不要な依存関係や重複コードの検出
  • 効率的なコード分割や遅延読み込みの検討材料の取得

これらは、ユーザー体験の向上やSEO対策にも直結するため、Nuxt プロジェクトの品質向上に欠かせないステップです。

まず結論:Nuxt analyze のポイント

  • npx nuxt analyze コマンドでプロダクションビルドを行い、バンドルの詳細な可視化ができる
  • 作業ディレクトリやログレベル、環境変数の読み込みなど細かいオプション指定が可能
  • 分析結果はブラウザでインタラクティブに閲覧でき、依存関係やサイズの内訳を確認できる
  • --no-serve オプションで結果の自動提供をスキップし、ファイルだけ生成することも可能
  • process.env.NODE_ENV は自動的に production に設定されるため、本番環境に近い状態で分析できる

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

使うべきタイミング

  • パフォーマンス改善を検討するとき
    ページの読み込みが遅い、初期表示が重いと感じたら、どのモジュールがボトルネックかを調査するために使います。

  • 依存関係の最適化をしたいとき
    使っていないライブラリがバンドルに含まれていないか、重複しているコードがないかをチェックする際に有効です。

  • コード分割や遅延読み込みの効果を検証したいとき
    実装したコード分割が期待通りに機能しているか、バンドルサイズが減っているかを確認できます。

使わない方がよいケース

  • 開発中の頻繁なビルド時
    分析はビルド時間が長くなるため、頻繁に実行すると効率が落ちます。必要なときだけ実行しましょう。

  • 単純なビルド確認だけが目的の場合
    サイズや依存関係の詳細を気にしない場合は通常のビルドコマンドで十分です。

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

1. バンドルサイズの肥大化原因の特定

あるページの初期表示が遅い場合、nuxt analyze でバンドルを解析し、巨大なライブラリや不要な依存が含まれていないかを調べます。

npx nuxt analyze --logLevel=info

分析結果の画面で、サイズの大きいモジュールをクリックし、どのパッケージが影響しているかを確認します。

2. 環境変数を使った分析

.env ファイルに設定した環境変数を読み込んでビルドしたい場合は、--dotenv オプションを使います。

npx nuxt analyze --dotenv

これにより、本番環境に近い設定でのバンドル分析が可能です。

3. 分析結果の自動提供をスキップしてファイルだけ生成

CI/CD パイプラインでバンドル分析結果を保存したい場合、--no-serve を使ってサーバー起動をスキップし、静的ファイルだけを生成します。

npx nuxt analyze --no-serve

生成されたファイルは後でブラウザで開いて確認できます。

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

SSR と CSR の違いによる影響

Nuxt は SSR(サーバーサイドレンダリング)と CSR(クライアントサイドレンダリング)を組み合わせて動作します。
nuxt analyze はプロダクションビルドのバンドル全体を分析しますが、SSR と CSR で読み込まれるコードが異なる場合があります。
そのため、分析結果を見て「大きすぎる」と感じても、実際のユーザー体験に直結しないケースもあります。
SSR でのみ使われるコードや、CSR でのみ遅延読み込みされるコードの違いを理解して活用しましょう。

Hydration(ハイドレーション)時の注意

クライアント側でのハイドレーション処理は、バンドルサイズだけでなく、JavaScript の実行コストも影響します。
nuxt analyze はサイズを可視化しますが、実行時のパフォーマンスまでは測れません。
大きなバンドルは実行時間も長くなるため、サイズ削減と合わせて実行効率も意識しましょう。

パフォーマンス最適化のための過信は禁物

分析結果はあくまで「どのモジュールがどれだけのサイズか」を示すものです。
必ずしもサイズが大きいものが悪いわけではなく、機能やUXのトレードオフも考慮してください。
また、コード分割や遅延読み込みの効果は実際のユーザー環境での計測も重要です。

まとめ

Nuxt analyze コマンドは、プロダクションバンドルの詳細な分析を通じて、パフォーマンス改善や依存関係の最適化に役立つ強力なツールです。
適切なタイミングで使い、分析結果を正しく解釈することで、Nuxt アプリケーションの品質向上に大きく貢献します。
ただし、SSR/CSR の違いや実行時パフォーマンスも考慮し、バンドルサイズだけにとらわれない総合的な最適化を心がけましょう。

nuxt analyze は実験的な機能であり、将来的に仕様変更や改善が行われる可能性があります。最新の公式ドキュメントも併せて確認してください。