Next.js Upgrade Protocol
Automated and manual migration steps for Next.js version upgrades (e.g., v14 → v15).
Priority: P1 (OPERATIONAL)
1. Detection & Planning
- •Check
package.jsonfor currentnext,react, andreact-domversions. - •Incremental Upgrades: Jumps across multiple major versions (e.g., 13 → 15) MUST be done incrementally (13 → 14 then 14 → 15).
2. Automated Codemods
Run Next.js codemods to handle breaking syntax changes:
bash
npx @next/codemod@latest <transform> <path>
Common Transforms (v15):
- •
next-async-request-api: Transformsparams,searchParams,cookies(), andheaders()into awaited Promises. - •
next-request-geo-ip: Migrates legacy geo/ip properties. - •
next-dynamic-access-named-export: Fixes dynamic import syntax.
3. Dependency Update
Upgrade Next.js and peer dependencies in sync:
bash
# Using npm npm install next@latest react@latest react-dom@latest # Update Types npm install --save-dev @types/react@latest @types/react-dom@latest
4. Manual Verification Rules
- •Async Context: Verify all uses of
cookies(),headers(), and routeparamsare now awaited. - •Metadata: Ensure
generateMetadatatypes match the new asyncparamssignature. - •Caching: In v15+,
fetchdefaults to{ cache: 'no-store' }. If you need the old behavior, explicitly set{ cache: 'force-cache' }.
5. Testing Build
- •Run
npm run buildimmediately after codemods and package updates. - •Check for "Hydration failed" or "Turbopack" compatibility errors if using
--turbo.