更新Angular/cli遇ngx-spinner对等依赖不兼容,可否用--force强制更新?
解答
报错原因
- 你执行的
npm update ngx-spinner没有真正更新依赖版本范围:npm update命令只会在package.json声明的ngx-spinner语义化版本区间内升级,如果你之前锁定的是^10.x的版本范围,update最多只会升到10.x的最新版,不会跨大版本升到12.x。你可以先检查package.json中ngx-spinner的版本声明,确认是否已经正确更新为12.0.0。 - 若确认package.json中ngx-spinner版本正确仍报错,说明除了ngx-spinner外,还有其他依赖存在对等依赖不兼容问题,或是package-lock.json中残留了旧版本的依赖记录。
处理方案
- 优先推荐无强制更新方案:
- 第一步:手动安装适配Angular 12的ngx-spinner版本,执行
npm install ngx-spinner@12 --save,确保package.json的版本声明同步更新 - 第二步:将三个强绑定的Angular官方包放在同一个命令中更新,执行
ng update @angular/cli @angular/core @angular/google-maps,单独更新任意一个官方包都会出现版本不匹配问题 - 第三步:如果仍报对等依赖错误,逐一核对报错中提到的所有第三方依赖,将其全部升级到适配Angular 12的版本后,再执行更新命令
- 第一步:手动安装适配Angular 12的ngx-spinner版本,执行
- 备选强制更新方案:
若所有第三方依赖都已升级到对应兼容版本仍报错,可以添加--force参数执行更新:ng update @angular/cli @angular/core @angular/google-maps --force,更新完成后执行npm install,再全量测试项目功能,只要没有运行时报错、功能正常,就不会有遗留问题。
注意事项
升级前务必提交所有本地代码变更,方便升级失败时快速回滚。跨大版本升级(从Angular 10升至12)也可以选择逐大版本升级,先升到11再升到12,能减少兼容性问题。
内容的提问来源于stack exchange,提问作者chuckd
相关产品推荐
相关产品推荐

