SuperAPI AI 工具集

next-upgrade

前端与建站

查看项目

更新于 10-16 02:36

技能介绍

用途:为 Next.js 应用跨大版本升级提供结构化流程,处理 codemod 自动化、依赖更新、破坏性变更解决与验证。

适用场景:升级到新大版本(13、14、15、16);用 codemod 自动化破坏性变更迁移;消除弃用警告;为大型代码库规划增量迁移;验证升级未引入回归。

9 步流程:检测当前版本与目标版本(cat package.json 查看 next,node --version 检查 Node);创建升级分支(git checkout -b upgrade/nextjs-{target-version});运行官方 codemod(npx @next/codemod@latest upgrade latest,或指定 15、16);更新依赖(npm install next@latest react@latest react-dom@latest,并更新 @types 与 eslint-config-next);更新 next.config.js/ts 配置;手动解决剩余破坏性变更;运行测试(npm test、npm run build、npm run dev);更新 TypeScript 类型(npx tsc --noEmit);记录并提交。

版本要求:13 需 Node 16.14、React 18.2.0;14 需 Node 18.17、React 18.2.0;15 需 Node 18.18、React 19.0.0;16 需 Node 20.0、React 19.0.0。

关键 codemod:13→14 有 next-image-to-legacy-image、next-image-experimental、metadata;14→15 有 next-async-request-apis、next-dynamic-ssr-false、next-og-import;15→16 有 next-use-cache、next-cache-life、next-form。

主要破坏性变更:15+ 的 cookies()、headers()、params、searchParams 变为异步;fetch 默认不再缓存,需显式 cache: 'force-cache' 或 'use cache';GET 路由处理器默认不缓存。

限制与原则:始终在专用分支升级;多版本跳跃需逐级递增,不可跳过中间版本;先运行官方 codemod 再做手动修改;--legacy-peer-deps 仅在记录冲突原因时使用;须以完整构建加测试验证后再合并。大型跳跃可走 13→14→15→16 的增量路径,每步提交检查点。