已安装依赖仍提示找不到firebase/app模块,AngularFire2版本适配求解
解决Ionic项目中"Cannot find module 'firebase/app'"的问题
看起来你踩了angularfire2和firebase版本不匹配的坑,结合你的package.json配置,我来帮你一步步解决:
问题根源
你当前安装的angularfire2@5.0.0-rc.4依赖的是完整的firebase包,但你却单独安装了拆分后的@firebase/app——这两个包的模块路径结构完全不同,所以系统找不到firebase/app这个模块。另外,你的项目基于Angular 4.4.3和Ionic 3.7.1,也不能随意升级angularfire2到更高版本(比如6+,因为它们只支持Angular 6+)。
具体解决步骤
1. 先清理不匹配的依赖
打开终端,运行以下命令卸载当前的angularfire2和@firebase/app:
npm uninstall angularfire2 @firebase/app --save
2. 安装完全兼容的版本组合
针对你的Angular 4和Ionic 3环境,最稳定的组合是angularfire2@5.0.0-rc.11搭配firebase@4.13.1,运行:
npm install angularfire2@5.0.0-rc.11 firebase@4.13.1 --save
3. 清除缓存并重新安装依赖(可选但推荐)
为了避免缓存导致的奇怪问题,删除node_modules文件夹和package-lock.json文件,然后重新安装所有依赖:
# Windows系统用 rmdir /s /q node_modules 替代第一行 rm -rf node_modules package-lock.json npm install
4. 重启服务
最后运行ionic serve,应该就能正常加载firebase模块了。
额外提示
- 不要在angularfire2 5.x版本中单独安装
@firebase/*系列包,完整的firebase包已经包含了所有必要的模块。 - 如果之后需要升级Angular到6+,再考虑升级angularfire2到6.x及以上版本,那时才需要使用拆分后的@firebase/*包。
内容的提问来源于stack exchange,提问作者Usr
相关产品推荐
相关产品推荐

