You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

支持ngrx/data的适配Angular版本及兼容报错排查

报错根因

你遇到的两类报错本质都是NgRx与Angular版本不匹配导致的:

  • 类型报错提示ɵɵFactoryDeclaration/ɵɵInjectableDeclaration不存在,是因为你安装的NgRx/data版本过高,调用了Angular 12及以上版本才提供的内部编译API,你当前使用的Angular 11.2.14没有这些导出成员
  • ESM模块导入BehaviorSubject报错,是因为高版本NgRx的模块输出格式和Angular 11配套的构建工具链不兼容

反复删除node_modules和package-lock.json重新安装依赖解决不了这个问题,只要版本不匹配就会持续报错。

适配版本规则

NgRx全家桶(包含@ngrx/store、@ngrx/effects、@ngrx/entity、@ngrx/data)和Angular是严格的大版本对齐关系,大版本号必须完全一致才能正常运行:

  • 如果你要保留当前Angular 11.2.x的开发环境,所有NgRx相关包必须安装11.x大版本
  • 如果你要跟着参考的NgRx v12教程实操,需要将整个Angular项目升级到Angular 12.x大版本,对应安装12.x版本的NgRx全家桶
  • 后续如果升级Angular到13及以上版本,NgRx也要同步升级到相同大版本,否则会复现同类报错
快速修复方案(无需升级Angular)

直接执行命令安装适配Angular 11的NgRx版本即可:

npm install @ngrx/store@11 @ngrx/effects@11 @ngrx/entity@11 @ngrx/data@11 --save

安装完成后重新执行ng serve启动项目,现有报错会全部消失。


内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:06:27