Angular 12升级到Angular 13出现npm依赖冲突问题如何解决?
解决Angular 12升级到13的依赖冲突问题
你遇到的报错核心原因有两个:一是此前执行的升级命令仅更新了Angular官方核心包,项目中依赖的其他Angular生态第三方包仍为适配Angular 12的版本,存在版本不兼容;二是npm 7及以上版本默认开启对等依赖严格校验,会直接阻断存在冲突的依赖安装。
你可以按照以下步骤完成升级:
步骤1:清理旧依赖缓存
先删除本地旧依赖和锁文件,避免历史版本干扰:
# macOS/Linux 执行 rm -rf node_modules package-lock.json # Windows 执行 rmdir /s /q node_modules del package-lock.json
步骤2:升级所有适配Angular 13的第三方依赖
你项目中以下依赖需要同步升级到对应Angular 13的版本:
@angular/cdk从12.x升级到13.x最新版primeng从12.x升级到13.x最新版@angular/fire从6.x升级到7.2+版本akita-ng-fire、@datorama/akita-ng-router-store等Akita生态包升级到适配Angular 13的版本firebaseui-angular升级到6.x+版本
你可以直接手动修改package.json中的版本号,也可以执行以下命令批量升级:
npx @angular/cli@13 update @angular/cdk@13 primeng@13 @angular/fire@7
步骤3:执行兼容模式依赖安装
如果部分小众第三方包未及时更新对等依赖声明,可以添加--legacy-peer-deps参数跳过严格校验完成安装,该参数比--force更安全,不会强制覆盖依赖版本:
npm install --legacy-peer-deps
如果不想每次执行install都加参数,可以在项目根目录新增.npmrc文件,写入以下配置即可永久生效:
legacy-peer-deps=true
步骤4:验证升级结果
依赖安装完成后执行启动命令验证项目运行状态:
npm run start
如果启动时出现API废弃提示,按照控制台指引调整对应语法即可,Angular 13核心变更包括移除View Engine、不再支持IE11等。
内容的提问来源于stack exchange,提问作者J4N
相关产品推荐
相关产品推荐

