nuxt analyze
Nuxt アプリケーションのプロダクションバンドルを分析します。
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_ENV を production に設定します。
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 は実験的な機能であり、将来的に仕様変更や改善が行われる可能性があります。最新の公式ドキュメントも併せて確認してください。
※このページは Nuxt.js 公式ドキュメントの翻訳ページです。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/api/commands/analyze