angular-in-memory-web-api目标入口点缺失依赖报错如何解决
报错原因
该报错由版本不兼容问题导致:
你当前安装的angular-in-memory-web-api是适配RxJS 5.x的旧版本,这类版本采用RxJS 5的深层路径导入规则,会直接引用rxjs/Observable、rxjs/observable/of这类路径下的API;而你项目中使用的是RxJS 6.x及以上版本(Angular 6及以上版本默认配套该版本RxJS),RxJS 6重构了内部导出结构,废弃了旧版深层导入路径,将操作符统一收敛到rxjs/operators入口下,因此构建时无法找到对应依赖抛出错误。
修复方案
根据项目实际情况二选一即可:
方案1(推荐):升级angular-in-memory-web-api到兼容版本
- 先卸载现有旧版本包,执行命令:
npm uninstall angular-in-memory-web-api - 安装和当前项目Angular大版本匹配的新版包:
- Angular 6~12项目,执行
npm install angular-in-memory-web-api@0.11.0 --save-dev - Angular 13及以上项目,直接执行
npm install angular-in-memory-web-api@latest --save-dev
- Angular 6~12项目,执行
- 安装完成后,删除项目下的
node_modules文件夹和对应包管理器的锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行依赖安装命令后,重启构建/本地启动流程即可。
方案2(临时兼容):安装RxJS兼容层
如果短期内无法升级angular-in-memory-web-api版本,可以安装RxJS官方提供的兼容包适配旧版导包规则:
- 执行命令安装兼容包:
npm install rxjs-compat --save - 安装完成后直接重新执行构建/启动命令即可。
注意:该方案仅为临时过渡方案,
rxjs-compat会增加最终打包体积,后续依赖迭代时建议切换到方案1完成版本适配,移除兼容包。
内容的提问来源于stack exchange,提问作者Illia Kucheruk
相关产品推荐
相关产品推荐

