Angular 14安装ngx-bootstrap报ERESOLVE依赖冲突如何解决
直接执行默认安装命令拉取到的是ngx-bootstrap@8.0.0版本,该版本声明的peer依赖要求Angular版本范围为^13.0.0,与项目中使用的Angular 14版本不匹配。npm 7及以上版本默认开启严格peer依赖校验,因此会抛出ERESOLVE unable to resolve dependency tree错误。
按推荐优先级排序,可选择以下任意一种方式处理:
安装适配Angular 14的正式版本
ngx-bootstrap 9.0.0及以上版本原生兼容Angular 14,安装时直接指定对应版本即可,不需要强制跳过依赖校验,命令如下:npm install ngx-bootstrap@9.0.0 --save安装完成后按常规用法在Angular模块中导入需要的功能组件即可,API用法与Angular 13环境下完全一致,不会出现兼容性问题。
临时跳过依赖校验安装8.x版本
如果因项目原因必须使用8.0.0版本,可以在安装命令后追加--legacy-peer-deps参数,告知npm跳过严格的peer依赖校验直接完成安装:npm install ngx-bootstrap@8.0.0 --save --legacy-peer-deps注意:8.0.0版本本身基于Angular 13构建,部分依赖Angular核心API、动画模块的组件可能在Angular 14环境下出现运行时异常,该方案仅适合临时调试场景,不建议生产环境使用。
配置npm默认跳过peer依赖校验
如果项目中存在多个同类旧版本依赖需要安装,可以修改npm配置,默认关闭严格peer依赖校验:npm config set legacy-peer-deps true配置完成后直接执行普通安装命令即可绕过依赖冲突报错,后续需要恢复严格校验时,执行
npm config set legacy-peer-deps false即可还原默认配置。
内容的提问来源于stack exchange,提问作者Ayobamilaye

