Angular12升级13执行ng update报peer dependency依赖冲突如何解决?
Angular12升级13对等依赖冲突解决方案
这个对等依赖冲突是Angular 13的版本兼容要求导致的,从报错信息可以看到@angular/compiler-cli@13.0.0要求TypeScript版本必须处于>=4.4.2 <4.5区间,你项目当前安装的TypeScript版本不在这个范围内,所以升级流程被npm拦截。
方案1:先升级TypeScript到兼容版本(最稳妥,优先选择)
- 首先执行命令安装符合要求的TypeScript版本:
npm install typescript@4.4.4 --save-dev
- 安装完成后再重新执行Angular升级命令:
npx @angular/cli@13 update @angular/core@13 @angular/cli@13
- 升级完成后可执行
ng version确认Angular核心包和TypeScript版本均匹配正确。
方案2:添加参数绕过依赖校验(仅临时测试使用)
如果你已经确认项目内其他第三方依赖不会受版本冲突影响,可以直接在升级命令后添加参数跳过对等依赖校验:
npx @angular/cli@13 update @angular/core@13 @angular/cli@13 --legacy-peer-deps
注意:该方案会跳过npm的依赖合法性校验逻辑,可能引入未兼容的依赖包导致项目运行异常,不建议在生产项目中使用。
额外排查建议
- 升级前建议先删除
node_modules文件夹和package-lock.json/yarn.lock锁文件,避免旧的依赖缓存干扰升级流程 - 如果项目引入了第三方Angular组件库,建议先确认对应库是否已经适配Angular 13,避免升级完成后出现其他兼容问题
内容的提问来源于stack exchange,提问作者Ravikumar
相关产品推荐
相关产品推荐

