Angular开发报错:无法解析'rxjs/Observable'模块求助
解决Angular开发中无法解析'rxjs/Observable'的模块未找到错误
这个问题是rxjs版本与angularfire2版本不兼容导致的——你的项目使用了rxjs 6.x,但angularfire2 5.0.0-rc.3是为rxjs 5设计的。rxjs 6对核心类的导入路径做了重大调整,旧版本的angularfire2还在使用rxjs/Observable这种rxjs 5的导入方式,自然找不到对应的模块。
下面给你两种可行的解决方案:
方案一:安装rxjs-compat兼容包(快速临时解决)
rxjs-compat是官方提供的兼容层,能让依赖rxjs 5的代码在rxjs 6环境下正常运行,执行以下命令安装:
npm install rxjs-compat@6 --save
安装完成后重启项目,这个错误应该就会消失了。
方案二:升级angularfire2到兼容rxjs 6的正式版(推荐长期解决方案)
angularfire2 5.0.0正式版已经适配了rxjs 6的新导入规则,同时需要配合升级firebase到对应的兼容版本,执行以下命令:
npm install angularfire2@5.0.0 firebase@5.x --save
升级完成后,angularfire2就能直接适配rxjs 6的API,不需要依赖兼容包,代码结构也更符合新版本规范。
补充说明
rxjs 6的核心变化包括:
- Observable等核心类的导入路径从
rxjs/Observable改为rxjs,比如import { Observable } from 'rxjs'; - 操作符从
rxjs/add/operator/map改为从rxjs/operators导入,并需要用pipe方法组合
如果选择升级angularfire2,后续自己写代码时也要注意遵循rxjs 6的新写法哦。
内容的提问来源于stack exchange,提问作者Suraj Nath




