• #ビルド最適化
  • #Nuxt3
  • #パフォーマンス
未分類

ビルド最適化ログ

開始日: 2026-01-29

各対策の実施前後のビルド時間を記録する。


ベースライン(対策実施前)

計測日時: 2026-01-29 10:39 / 10:47(2回計測)

1回目

フェーズ
Initialization6.50.11
Nuxt Setup72.61.21
Client Build (Vite)50.40.84
Server Build (Nitro)243.14.05
Cloudflare Deploy41.40.69
合計418.76.98

2回目

フェーズ
Initialization6.70.11
Nuxt Setup88.51.47
Client Build (Vite)58.40.97
Server Build (Nitro)250.54.17
Cloudflare Deploy55.10.92
合計459.77.66

対策1: /search をプリレンダリング対象から除外

実施日時: 2026-01-29 11:30 変更内容: nuxt.config.tsnitro.prerender.ignore'/search' を追加

フェーズ実施前実施後差分
Initialization8.2s2.5s-5.7s
Nuxt Setup74.5s59.5s-15.0s
Client Build (Vite)57.6s53.2s-4.4s
Server Build (Nitro)264.8s138.1s-126.7s (48%削減)
Cloudflare Deploy57.9s37.0s-20.9s
合計463.6s290.8s-172.8s (37%削減)
Client modules3,5623,5620
Server modules1,0991,0990

効果: /search_payload.json(20MB)生成が最大のボトルネックだった。1行の設定変更で約3分短縮。


対策2: nuxt-og-image モジュールの削除

実施日時: 2026-01-29 変更内容: nuxt.config.ts から以下を削除

  • modules 配列の "nuxt-og-image"
  • ogImage 設定ブロック(Satori/Resvg/フォント設定)

削除理由: defineOgImage() がプロジェクト内で未使用。全OG画像はCloudflare Worker経由で動的生成済み。モジュールは15MBのフォントキャッシュとサーバールート登録のみ行っていた。

フェーズ対策1後対策2後差分
Initialization2.5s4.9s+2.4s
Nuxt Setup59.5s47.1s-12.4s (21%削減)
Client Build (Vite)53.2s37.0s-16.2s (30%削減)
Server Build (Nitro)138.1s108.9s-29.2s (21%削減)
Cloudflare Deploy37.0s35.3s-1.7s
合計290.8s233.7s-57.1s (20%削減)
Client modules3,5623,5620
Server modules1,0991,072-27

効果: 全フェーズで改善。特にClient Build(-16.2s)とServer Build(-29.2s)の短縮が大きい。サーバーモジュール数も1099→1072に27モジュール減少。「使っていないだけ」のモジュールでも、ビルドパイプライン全体に影響を与えていた。

ベースラインからの累積改善

ベースライン(平均)対策1+2後累積削減
合計439.2s (7.32分)233.7s (3.90分)-205.5s (47%削減)