升级前先阅读
大版本存在是因为有不兼容变更。阅读迁移指南和变更日志,列出移除的 API 和改变的默认值,并在代码库中逐一搜索。从 pnpm update 和失败测试开始的升级,只会浪费时间重新发现已记录的变化。
pnpm outdated
pnpm add dependency@next-major
pnpm test
隔离变更
一次只升级一个重大依赖。如果多个包必须一起移动,把它们视为一个带共享回滚的变更。保持锁文件差异可评审。能运行 codemod 就运行,但要检查输出;能编译的 codemod 仍可能改变行为。
测试行为,而不只是编译
编译只证明 API 存在,不证明行为相同。运行集成和契约测试,并为改变的默认值、错误处理和序列化添加针对性测试。金丝雀发布并与基线比较指标。出现回归时先回滚锁文件,再在分支上调查。