Key Points
- オンデマンドISR(β)
- SWCで高速化
- ゼロ構成Jestサポート
Summary
Next.js 12.1 の主な目的は開発者体験とビルド/配信性能の改善です。注目はオンデマンド ISR(Beta)で、API から個別ページを即時再検証できるようになり、SWC コンパイラの変換対応拡張(styled-components、Relay など)、next/jest によるゼロ構成の Jest サポート、SWC を使った高速ミニファイ(RC)です。セルフホスト向けには .next/standalone を作ることで Docker イメージが約80%小さくなります。React 18/Server Components はアルファ段階の改善が入り、Edge Runtime の選択肢も進行中です。
Key Points
- オンデマンド ISR(Beta):API ルートから
res.unstable_revalidate('/path')を呼んで個別ページを即時再検証可能。getStaticPropsでrevalidateを指定しなくても動作。 - SWC 拡張トランスフォーム:
styled-components、relay、legacy-decorators、remove-react-properties、remove-console、importSourceなど主要な Babel プラグインを Rust ベースでサポート。 - next/jest:Next.js コンパイラ(SWC)を使った自動 Jest 設定。スタイル/画像のモック、
.env読み込み、.nextやnode_modulesの無駄な変換除外を自動化。 - SWC ミニファイ(RC):Terser 比で約7倍高速。
next.config.jsにswcMinify: trueを設定して利用可能(12.2 でデフォルト予定)。 - 画像最適化:stale-while-revalidate パターンに対応し、キャッシュから即時返してバックグラウンドで再生成可能。
- Self-hosted:
experimental.outputStandalone: trueを設定すると.next/standaloneを作成し、production 配布用に必要最小限のファイルのみをコピーして Docker イメージを小さくできる。 - React 18 / Server Components(Alpha):ストリーミング SSR、Server Components の改善(部分ハイドレーション、
useIdサポート、_app の Server Component 対応など)。
Upgrade / 使い始め
- パッケージを更新:
npm i next@latest - オンデマンド ISR を使うには API ルートで
res.unstable_revalidate('/path')を呼び出す(シークレットチェック推奨)。 - SWC ミニファイを有効にするには
module.exports = { swcMinify: true }を next.config.js に追加。 - Self-hosted 出力を使うには
experimental.outputStandalone: trueを next.config.js に追加。
必要な変更は小さく、既存のワークフローに対する互換性を重視しています。詳細は公式ドキュメントと移行ガイドを確認してください。