如何安装适配Angular CLI 12的完整NgRx Store 12版本?
正确安装适配Angular CLI 12的完整NgRx 12版本方案
我帮你搞定这个NgRx版本适配的问题——Angular CLI和NgRx的版本必须严格对应,你遇到的自动装13、缺失组件以及模块找不到的问题,都是因为版本匹配和安装方式不对导致的,按下面的步骤来就能解决:
第一步:清理残留的不兼容NgRx包
先把之前可能安装的不完整或高版本NgRx包彻底卸载,避免冲突:
npm uninstall @ngrx/store @ngrx/effects @ngrx/actions @ngrx/entity @ngrx/router-store @ngrx/operators --save # 或者更彻底的批量卸载所有NgRx包 npm uninstall @ngrx/* --save
第二步:统一指定NgRx 12版本安装所有需要的组件
关键是要同时指定所有你需要的NgRx模块的12版本,不能单独只装store,否则npm会自动拉取其他模块的最新版本(比如13),导致依赖不匹配。执行下面的命令(把你需要的模块都列进去,比如store、effects、actions这些核心组件):
npm install @ngrx/store@12 @ngrx/effects@12 @ngrx/actions@12 @ngrx/entity@12 @ngrx/router-store@12 @ngrx/operators@12 --save
如果需要装开发依赖的调试工具(比如store-devtools),也要指定12版本:
npm install @ngrx/store-devtools@12 --save-dev
第三步:解决「Cannot find module '@ngrx/store'」错误
如果执行完安装还是报这个错,按下面的步骤排查:
- 删除项目根目录的
node_modules文件夹和package-lock.json(或yarn.lock)文件 - 重新执行
npm install,确保依赖完全重新安装 - 检查你的
tsconfig.json,确认compilerOptions里没有意外排除node_modules;如果还是有问题,可以尝试在compilerOptions.types里添加@ngrx/store(不过NgRx 12本身自带类型声明,一般不需要这一步)
第四步:验证安装成功
执行下面的命令查看NgRx版本,确认所有模块都是12.x:
npm list @ngrx/store
也可以在app.module.ts中导入Store模块测试:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { StoreModule } from '@ngrx/store'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [ BrowserModule, StoreModule.forRoot({}) // 测试导入是否正常 ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
如果没有报错,就说明安装成功了。
内容的提问来源于stack exchange,提问作者obaFP
相关产品推荐
相关产品推荐

