Angular14安装ng-bootstrap12.1.2报ERESOLVE依赖冲突错误
问题原因
这是npm 7及以上版本默认开启严格对等依赖(peerDependencies)校验触发的版本不匹配错误:
- 当前项目基于Angular 14.0.0搭建,已安装的
@angular/common版本为14.0.0 - 尝试安装的
@ng-bootstrap/ng-bootstrap@12.1.2为Angular 13适配版本,它声明的对等依赖要求@angular/common版本范围为^13.0.0,和项目现有Angular版本不满足语义化匹配规则,npm无法完成依赖树解析,直接终止安装流程并抛出ERESOLVE错误。
报错核心返回码:
ERESOLVE,代表npm依赖解析阶段检测到无法调和的版本冲突,触发条件为安装包声明的peer依赖版本范围与项目中已安装的对应包版本不满足语义化匹配要求。
解决方案
按推荐优先级从高到低排列:
- 方案1(无兼容风险,生产环境首选):安装与Angular 14版本匹配的ng-bootstrap版本。ng-bootstrap的主版本号与Angular主版本号为一一对应关系,适配Angular 14的版本为13.x系列,执行以下命令即可正常安装:
该版本经过官方兼容验证,不会触发依赖冲突,也不存在运行时的兼容隐患。npm install @ng-bootstrap/ng-bootstrap@13 - 方案2(临时绕过,存在运行风险):如果因特殊场景必须使用12.1.2版本,可在安装命令后追加参数跳过对等依赖校验,强制完成安装:
注意:该方式属于强制绕过版本校验规则,没有经过官方兼容测试,后续运行过程中可能出现组件API不匹配、功能报错等未知问题,仅建议临时测试场景使用,禁止在生产环境采用。# 沿用npm 6及以前版本的宽松依赖解析逻辑,忽略peer依赖版本匹配校验 npm install @ng-bootstrap/ng-bootstrap@12.1.2 --legacy-peer-deps # 强制npm忽略所有依赖冲突,直接执行安装 npm install @ng-bootstrap/ng-bootstrap@12.1.2 --force
版本对应参考:ng-bootstrap大版本与Angular大版本严格对齐,12.x对应Angular 13,13.x对应Angular 14,14.x对应Angular 15,后续版本以此类推,安装时优先选择和项目Angular主版本一致的ng-bootstrap大版本即可避免这类依赖冲突。
内容的提问来源于stack exchange,提问作者user19300793
相关产品推荐
相关产品推荐

