Nx 12+Angular 12集成@nxtend/firebase报错及angularfire适配咨询
问题解答
1. 两个报错的修复方案
两个报错的根本原因是你安装的@nxtend/firebase@11.x版本已经移除了ng-add、init两个schematic,且该版本适配的Nx版本远高于你当前使用的v12.9.0,无法正常调用相关生成器。
修复步骤如下:
- 先卸载已安装的高版本插件:
npm uninstall @nxtend/firebase - 安装适配Nx 12的
@nxtend/firebase历史版本:npm install @nxtend/firebase@4.2.0 --save-dev - 重新执行初始化命令即可正常运行:
nx generate @nxtend/firebase:init
2. 版本兼容性判断
@nxtend/firebase@^11.1.2与Angular 12.x、Nx 12.x确实不兼容。
该插件版本和Nx版本强绑定,v11.x要求的最低运行环境为Nx >=14、Angular >=14,强行在低版本环境安装使用,除了生成器调用失败外,后续运行时也会出现大量依赖冲突问题。
3. Nx集成firebase/angularfire可行方案
提供两种经过验证的方案,可根据需求选择:
方案1:使用适配版本的@nxtend/firebase插件集成
完成问题1的修复操作后,继续执行以下步骤:
- 安装适配Angular 12的
@angular/fire及firebase依赖:npm install @angular/fire@7.2 firebase@9 --save - 按照angularfire的使用指引,在对应应用的根模块导入所需的功能模块,传入firebase配置即可正常使用。
方案2:手动集成(更稳定,无第三方插件依赖问题)
如果不想被插件版本绑定,可直接手动完成集成:
- 安装firebase工具链并初始化项目配置:
npm install -g firebase-tools
在项目根目录执行firebase login完成账号登录,再执行firebase init选择需要的服务,将静态资源输出路径配置为你Nx应用对应的dist打包目录即可。 - 安装对应版本的核心依赖:
npm install @angular/fire@7.2 firebase@9 --save - 在Nx工作区配置文件(
angular.json/workspace.json)中为目标应用添加部署配置:
"deploy": { "executor": "@angular/fire:deploy", "options": { "buildTarget": "你的应用名:build:production" } }
- 在应用的根模块导入
AngularFireModule,传入firebase init生成的配置对象即可完成集成。
内容的提问来源于stack exchange,提问作者bright-sight
相关产品推荐
相关产品推荐

