16.4 から Cache Components を全アプリ向けに推奨。create-next-app の新規アプリでは既定で有効。既存アプリは cacheComponents と partialPrefetching を有効にし、next upgrade --agent と導入用 Skills で移行する。Next.js 17 では既定になる。

ts
import type { NextConfig } from 'next';

const nextConfig: NextConfig = {
  cacheComponents: true,
  partialPrefetching: true,
};

export default nextConfig;

ensureStatic はルートの shell / prefetch / navigation を静的に固定する。cacheComponents 必須。'navigation' はルート全体をプリレンダーし、未キャッシュの動的コンテンツがあれば next dev と next build で検証に失敗する。レイアウトに置くと配下へ適用。

ts
export const ensureStatic = 'navigation';

await navigation() は App Shell とリンク prefetch から下の作業を外し、実際の遷移まで遅らせる。await prefetch() はシェルからは外すが明示 prefetch には含める。どちらも next/cache から import し、Cache Components 必須。use cache 内では呼べない。

bash
npx next@canary upgrade --agent=latest

next@canary はアプリが古いバージョンでも最新の upgrade ツールを使う。experimental.agentUpgrade は 'security'(既定、既知の脆弱性)・'latest'・false。experimental.agentFeedback は作業中の下書き報告をブラウザで確認してから送る。Telemetry 必須で、CI では動かない。

全アプリ向けの改善は次のとおり。

  • Turbopack のディスクキャッシュは Zstandard 圧縮で容量 20〜25% 減
  • Lazy server HMR は表示中ルートだけサーバー更新を適用
  • ランタイムをルート横断の単一チャンクにまとめ、本番は CSS Modules の短いクラス名と export mangling
  • React 19.3(安定版 View Transitions、Fragment Refs、browser() API)

実験的に、Rust React Compiler は不要ファイルを fast check でスキップし、メモリ 30%、コンパイル 15% 減。turbopackGc は長時間の dev で未使用キャッシュを回収し、turbopackLazyDynamicImports はクライアント動的 import を要求時まで遅延コンパイルする。

#参考文献