本文へスキップ
MameTechNews
フロントエンド

Nuxt 4.6、サーバーAPIをNitroから分離しCLIの起動を高速化

## POINTS

  • nuxt/serverは移行必須ではない。自動importのh3ヘルパーと混ぜるとNUXT_E8012になる。
  • CLI v4はNode.js 22.21、24.11、26のいずれか以上。インストールサイズは13.1MBから3.5MB。
  • 型付きfetchはルート300件でTS2589が消え、インスタンス化が約577万回から約5.2万回へ減った。

Nuxt 4.6は10月5日に公開されたマイナーリリースで、同日にCLIのメジャー版@nuxt/cli v4も入る。中心は、サーバー側を特定のエンジンに縛らないことだ。これまでサーバーコードや型がh3とNitroに直結し、それらのメジャー更新がエコシステム全体へ波及していた。

新しいnuxt/serverは、ハンドラ、ミドルウェア、リクエストの補助関数をまとめたimport元だ。イベントはWeb標準のRequestとURL、ヘッダーに寄せ、既定の実装はこれまで通りNitroのまま動く。同じハンドラをNitro v2、Nitro v3、実験的な@nuxt/vite-serverで動かす狙いがある。Nuxt 5とNitro v3への移行を滑らかにするためで、チームは大半のアプリはNitroのままでよいとしている。このリリース自体に移行の義務はない。h3からの直接importも残る。

注意点は、自動importされるdefineEventHandlerなどが従来のh3のままであることだ。nuxt/serverと混ぜるとNUXT_E8012になる。CLI v4はNode.js 22.21以降、24.11以降、または26以降が必要で、nuxt initはなくなりnpm create nuxt@latestだけになる。Nuxt 2と@nuxt/bridgeは対象外。計測ではCLIのインストールサイズが13.1MBから3.5MB、nuxt devの初回表示が330ミリ秒から50ミリ秒、待機時メモリが630MBから440MBになった。

型付き$fetchも作り直され、ルート300件でTypeScriptのインスタンス化が約577万回・3.49秒かつTS2589だったものが、約5.2万回・0.16秒になった。サーバーをNuxt 5へ先に寄せるならnuxt/serverへ寄せ、急がないならNitroのままバージョン下限だけ合わせればよい。