如何修复Angular 8构建时rxjs中找不到NotificationKind的错误?
解决Angular 8构建时
NotificationKind未找到的错误 这个问题的核心是rxjs版本与@ngrx/effects版本不兼容:NotificationKind在rxjs 6.4及以后的版本中被移除(替代为NotificationType),而你的项目里使用的是rxjs: ~6.3.3,但@ngrx/effects 8.x版本已经适配了rxjs的更新,所以会出现找不到导出的错误。
下面是具体的解决步骤:
1. 升级rxjs到兼容版本
在项目根目录执行以下命令,将rxjs升级到和rxjs-compat匹配的6.5.x版本(这是@ngrx/effects 8.x的兼容版本):
npm install rxjs@~6.5.2 --save
如果使用yarn则执行:
yarn add rxjs@~6.5.2
2. 清理依赖缓存并重新安装
旧的依赖缓存可能导致版本冲突残留,执行以下步骤确保依赖安装纯净:
- 删除
node_modules文件夹:rm -rf node_modules - 删除
package-lock.json(npm用户)或yarn.lock(yarn用户):rm package-lock.json - 重新安装所有依赖:
npm install
3. 验证依赖版本匹配
升级完成后,检查你的package.json,确保:
- rxjs版本和
rxjs-compat版本保持一致(均为^6.5.2) - @ngrx系列包(effects、store等)版本统一为
^8.0.0,和Angular 8的版本匹配
额外说明
如果暂时不想升级rxjs,也可以尝试降级@ngrx/effects到7.x版本,但这不是推荐方案——长期来看,保持Angular、ngrx、rxjs的版本匹配,才能避免更多生态兼容问题。
执行完以上步骤后,重新运行ng build应该就能解决这个错误了。
内容的提问来源于stack exchange,提问作者wendellmva
相关产品推荐
相关产品推荐

