nextjs16-skills について
nextjs16-skillsは、Next.js 16のアップグレード、機能変更、移行上の要点をまとめたガイドです。Next.jsプロジェクトを保守・構築する開発者向けに、キャッシュ、Turbopack、ルーティングの変更、互換性要件を説明します。
主な機能
- 01Next.js 16へのアップグレードガイド
- 02キャッシュAPIとCache Components
- 03Turbopackの設定と移行
- 04ルーティングとプリフェッチの変更
- 05破壊的変更と非推奨項目
活用シーン
- 01Next.jsプロジェクトのv16へのアップグレード
- 02WebpackまたはTurbopack設定の移行
- 03キャッシュと再検証処理の調整
- 04アップグレード時の互換性変更の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gocallum/ nextjs16-agent-skills --skill nextjs16-skillsインストール後、Claude Code で/nextjs16-skillsを入力して読み込まれたか確認します。
詳細
リンク
- ドキュメント:https://nextjs.org/docs
- アップグレードガイド(v16):https://nextjs.org/docs/app/guides/upgrading/version-16
- リリースノート/ブログ:https://nextjs.org/blog/next-16
アップグレード
# Automated upgrade
npx @next/codemod@canary upgrade latest
# Manual upgrade
npm install next@latest react@latest react-dom@latest
# New project
npx create-next-app@latest
Codemod の主な対応内容:Turbopack の設定を移動し、next lint を ESLint CLI に移行し、middleware を proxy に移行し、一部の unstable_ プレフィックスを削除し、ルート単位の experimental_ppr を削除します。
TypeScript:@types/react と @types/react-dom もアップグレードしてください。
新機能(v16)
- Cache Components:「use cache」ディレクティブによるオプトイン方式のキャッシュ機能です。PPR を発展させ、取り込みます。
- Next.js DevTools MCP:AI を活用したデバッグのための Model Context Protocol 統合です。
proxy.ts:ネットワーク境界をより明確にします。middleware.tsはほとんどの用途で非推奨になりました。- ログ/メトリクスの改善:
next devとビルドのタイミング情報がより詳細になりました。
パフォーマンス/開発体験
- Turbopack:安定版になり、デフォルトのバンドラーになりました(
next dev --webpack、next build --webpackでオプトアウトできます)。 - カスタムの
webpack設定がある場合、誤設定を防ぐためにnext buildが失敗することがあります。設定を移行する、next build --webpackを使う、または Turbopack を使って webpack 設定を削除/無視することで解決できます。 - Turbopack の設定が移動しました:
next.config.*のexperimental.turbopack→ トップレベルのturbopack。 - Turbopack 移行時の注意点:
- Sass のインポート:Webpack 専用の
~プレフィックスを削除してください(例:@import 'bootstrap/...';)。 - ブラウザーバンドルから Node の組み込みモジュール(例:
fs)をインポートすることはできません。避けられない場合は、一時的な回避策としてturbopack.resolveAliasを使ってください。
- Sass のインポート:Webpack 専用の
- Turbopack ファイルシステムキャッシュ(開発、ベータ版):
experimental.turbopackFileSystemCacheForDev: true。 - React Compiler のサポート:
reactCompiler: trueでオプトインすると安定版で利用できます(ビルド/コンパイルのコストが高くなることが予想されます)。 - Build Adapters API:アルファ版(カスタムビルドアダプター)。
- ルーティング/プリフェッチの書き換え:レイアウトの重複排除と段階的なプリフェッチ。
キャッシュ API(主なシグネチャ)
revalidateTag(tag, profile)は、SWR 動作のためにキャッシュライフプロファイル(または{ expire })が必須になりました。updateTag(tag)(Server Actions のみ):書き込み後の読み取りセマンティクスを提供します。refresh()(Server Actions のみ):キャッシュされていないデータを更新します。キャッシュは変更しません。cacheLifeとcacheTagは安定版です(unstable_プレフィックスはありません)。
要件(v16)
- Node.js:20.9 以降(Node 18 はサポート対象外)
- TypeScript:5.1 以降
- ブラウザー:Chrome/Edge/Firefox 111 以降、Safari 16.4 以降
破壊的変更/動作の変更(影響大)
- 非同期 Request API:同期アクセスは削除されました。
await params、await searchParams、await cookies()、await headers()、await draftMode()を使ってください。 - ヒント(TypeScript):
npx next typegenを実行すると、PageProps、LayoutProps、RouteContextなどのヘルパーを生成でき、params/searchParamsの型を安全に移行できます。 - メタデータ画像:画像関数で
opengraph-image、twitter-image、icon、apple-iconが受け取るparams(およびid)は、Promise になりました。 - サイトマップ:
generateSitemapsを使う場合、sitemap({ id })が受け取るidは Promise になりました。 - 並列ルート:スロットには明示的な
default.jsが必要です。 next/imageのデフォルト値が変更されました(キャッシュ TTL、サイズ/品質)。クエリー文字列付きのローカルsrcにはimages.localPatternsが必要です。
その他の注目すべき動作の変更:
next devとnext buildは別々の出力ディレクトリを使います(next dev→.next/dev)。また、ロックファイルによって複数インスタンスの同時実行が防止されます。- スクロール動作:ナビゲーション中に Next.js がグローバルな
scroll-behavior: smoothを上書きすることはなくなりました。以前の上書き動作に戻すには、<html>にdata-scroll-behavior="smooth"を追加してください。 - ESLint:
@next/eslint-plugin-nextはデフォルトで ESLint Flat Config を使います。従来の.eslintrcを使うプロジェクトでは移行が必要になる場合があります。
削除・非推奨(概要)
- 削除:AMP のサポート、
next lint(ESLint/Biome を直接使用してください)、next.config.*のeslintオプション、serverRuntimeConfig/publicRuntimeConfig(環境変数を使用してください)、experimental.pprとルートレベルのexperimental_ppr、unstable_rootParams。 - 非推奨:
middleware.tsというファイル名(proxy.tsを推奨)、next/legacy/image、images.domains(images.remotePatternsを推奨)、revalidateTag(tag)の単一引数形式。 proxy.tsに関する注意:proxyはnodejsでのみ実行されます。proxyでは Edge ランタイムはサポートされていません。Edge を使い続ける必要がある場合は、middleware.tsを使用してください。- 設定名の変更例:
skipMiddlewareUrlNormalize→skipProxyUrlNormalize。
コメント
Markdown 対応