概要

Vercelは8月3日、Reactフレームワーク「Next.js」の最新バージョン16.3を正式リリースした。今回の目玉は、複雑なアプリケーション開発時にメモリを使い果たしてNode.jsがクラッシュし「FATAL ERROR」だけが残るという、開発者を長年悩ませてきた問題への対策だ。バンドラーTurbopackにディスクキャッシュとメモリ削減機能がデフォルトで有効化され、開発サーバーの実行時メモリ使用量が最大90%削減された。実際に自社サービスで検証したところ、社内ダッシュボードでは21.5GBから2GBへ(約90%減)、nextjs.org自体でも4.6GBから840MB(約82%減)にメモリ使用量が減少したという。The Registerの報道によれば、外部の開発者からも「4GBから1.5GBへ」「20GBから5GBへ」削減されたといった報告が寄せられており、Next.jsは2026年の年間ダウンロード数が10億を突破し前年(約5.2億)からほぼ倍増するなど、利用が急拡大する中でのパフォーマンス改善となる。

技術的な詳細

メモリ削減に加えて、ビルド高速化の恩恵も大きい。16.1で導入されたディスクキャッシュ機能がnext buildにも適用され、CI環境での再ビルドではキャッシュがヒットした場合に最大5.5倍高速化した事例もあるという。型チェック面では、先月リリースされたばかりのネイティブ移植版「TypeScript 7」との統合に対応し、pnpm add -D typescript@^7で依存関係を更新するだけでnext build時の型チェックが高速化する。Microsoftの発表ではTypeScript 7は大規模プロジェクトで8〜12倍のビルド高速化を実現しているとされる。ただしAchromatic社の移行ガイドは、Drizzle MCPサーバーなどTypeScriptコンパイラAPIに依存するツールが@typescript/typescript6互換パッケージを別途必要とする場合がある点や、新しいキャッシング機能・ナビゲーション機能の採用はバージョンアップとは別コミットで行い、問題発生時に切り分けやすくすることを推奨している。

このほか、Webストリームからネイティブ Node.jsストリームへの置き換えによりApp Routerのサーバーサイドレンダリングが高負荷時に最大22%多くのリクエストを処理できるようになったほか、静的アセットのデプロイ間キャッシュ再利用、catchErrorによるカスタムエラーバウンダリ、Turbopackでのグロブインポート対応、next/root-paramsによるルートパラメータへの簡易アクセスなど、既存アプリがコード変更なしに恩恵を受けられる改善が多数含まれる。

Instant Navigationsとその他の新機能

オプトイン機能としては、SPAのような即時応答性をサーバー駆動型のNext.jsにもたらす「Instant Navigations」機能群が導入された。cacheComponentspartialPrefetchingの2つのフラグを有効にすることで利用でき、遅いナビゲーションを自動検出するDevTools「Instant Insights」、リンクごとにプリフェッチ範囲を細かく制御できる「Partial Prefetching」、ビルド時に事前レンダリングされなかったURLに対して初回訪問時から即座にローディングシェルを表示できるよう改良されたISR、ローディング状態を可視化する「Navigation Inspector」、ナビゲーションの応答性低下を検出するPlaywright用テストヘルパーinstant()などが含まれる。さらに実験的機能として、Babelを介さずTurbopack内で直接動作するRust版React Compiler(v0での計測でコールドビルド時34%、ウォームビルド時46%の高速化)や、ネットワーク切断時に処理を保留し再接続後にリトライするuseOfflineによるオフライン耐性機能も追加されている。