Angular应用安装@ngrx/store报ERESOLVE依赖冲突如何解决
问题根因
报错由版本不兼容直接导致:当前项目Angular版本为13.3.x,执行ng add @ngrx/store@latest拉取的是v14.0.1版本的@ngrx/store,该版本要求peer依赖的@angular/core版本必须满足^14.0.0,和现有环境版本要求冲突,npm 7+版本默认会对peer依赖做严格校验,因此抛出ERESOLVE错误。
注意:不要直接加--force或--legacy-peer-deps参数强制跳过依赖校验,版本不匹配的依赖大概率会在编译、运行阶段触发不可预知的兼容性问题。
解决方案
根据自身需求二选一即可:
方案1:保留Angular 13版本,安装对应兼容版NgRx
NgRx主版本和Angular主版本严格对齐,Angular 13对应兼容的NgRx大版本为13.x,直接执行对应版本的安装命令即可:
ng add @ngrx/store@13
如果需要配套使用其他NgRx生态包(比如effects、store-devtools、router-store等),统一指定13的大版本号即可,示例:
ng add @ngrx/effects@13 @ngrx/store-devtools@13
方案2:升级Angular到v14,使用最新版NgRx
如果需要使用NgRx 14的新增特性,先将Angular项目整体升级到v14版本,再安装NgRx即可:
- 执行Angular官方升级命令,将CLI、核心依赖包统一升级到14版本:
ng update @angular/core@14 @angular/cli@14
- 升级完成后检查
package.json中@angular/core版本已更新为14.x,再执行NgRx安装命令:
ng add @ngrx/store@latest
校验
安装完成后执行ng serve启动项目,控制台无版本相关报错、NgRx功能运行正常即配置完成。
内容的提问来源于stack exchange,提问作者Athulya Ratheesh
相关产品推荐
相关产品推荐

