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

@ngrx/store 5.2.0与@angular/core ^4.4.3是否兼容?编译报错求助

解决Angular 4.4.3项目中@ngrx/store 5.2.0的Metadata版本不匹配问题

嘿,这个问题我太熟了!你碰到的本质是Angular版本和NgRx版本不兼容——@ngrx/store 5.x系列是专门为Angular 5.x量身打造的,而你的项目用的是Angular 4.4.3,两者的元数据版本(metadata version)对不上,所以编译时直接报错了。这也解释了为什么你在Angular 5.2.0的模板里能正常跑,版本对应上了嘛~

给你两个靠谱的解决方向,按需选:

方案一:降级NgRx到兼容Angular 4的版本

NgRx 4.x是完全适配Angular 4的稳定版本,操作起来最简单,改动也最小:

  1. 先卸载当前的高版本NgRx:
npm uninstall @ngrx/store
  1. 安装适配Angular 4的NgRx 4.x稳定版(比如4.1.1):
npm install @ngrx/store@4.1.1 --save

安装完后记得检查下代码里有没有用NgRx 5特有的API(比如createAction这类新增语法),如果有的话要改成NgRx 4的传统写法(比如定义action类)。

方案二:升级Angular项目到5.x版本

如果你的项目允许升级Angular,也可以把项目升到5.2.0(和你之前的模板版本一致),这样就能和@ngrx/store 5.2.0完美兼容:

  1. 先升级Angular核心依赖:
npm install @angular/core@5.2.0 @angular/common@5.2.0 @angular/compiler@5.2.0 @angular/platform-browser@5.2.0 @angular/platform-browser-dynamic@5.2.0 @angular/router@5.2.0 --save
  1. 同步升级CLI和其他配套依赖(比如@angular/compiler-cli、构建工具等,根据你的项目实际情况调整)
  2. 运行ng update(如果你的CLI版本支持的话)自动处理依赖兼容问题,再手动调整少量代码里的Angular版本差异点

个人更推荐方案一,因为升级Angular可能会牵扯到其他第三方依赖的兼容问题,降级NgRx的改动范围更小,风险更低。

最后验证一下:安装完成后跑npm run build或者ng build,如果没再出现Metadata版本不匹配的错误,就搞定啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:40:42