Angular 6集成AngularFire2遇RxJS版本错误求助
解决Angular 6集成AngularFire2时的rxjs版本错误问题
嘿,这个问题我之前在升级Angular 6的时候也碰到过!本质是rxjs版本不兼容导致的——Angular 6配套的是rxjs 6.x,而你当前安装的AngularFire2版本可能还在依赖rxjs 5的模块结构,所以才会出现找不到Subscription导出的错误。下面给你几个针对性的解决步骤:
安装与Angular 6兼容的AngularFire2和Firebase版本
不要直接装最新版,Angular 6需要匹配特定版本的依赖,执行下面的命令:npm install angularfire2@5.1.1 firebase@5.5.7 --save这个版本组合是经过验证的,能完美适配Angular 6的rxjs 6.x环境。
调整rxjs的导入语法
rxjs 6重构了模块结构,旧的导入方式会失效。把你代码里类似这样的导入:import { Subscription } from 'rxjs/Subscription'; import { map } from 'rxjs/operators/map';改成rxjs 6的标准导入:
import { Subscription } from 'rxjs'; import { map } from 'rxjs/operators';另外,rxjs 6里操作符需要通过
pipe()方法来使用,比如之前的.map()要改成.pipe(map(...))。清理依赖缓存重新安装
有时候旧的依赖缓存会导致问题,执行下面的命令彻底清理后重新安装:rm -rf node_modules package-lock.json npm install
做完这些步骤后,重新运行你的Angular应用,应该就能解决那个版本错误了。
内容的提问来源于stack exchange,提问作者Taremeh
相关产品推荐
相关产品推荐

