执行ng add @angular/fire报错Cannot run login in non-interactive mode求助
@angular/fire ng add执行失败及ng deploy连锁报错解决方案
根因分析
报错核心是Windows 10环境下的Git Bash默认被@angular/fire的ng add初始化流程判定为非交互模式:该流程在npm包安装完成后会自动触发Firebase CLI的交互登录步骤,非交互模式下无法弹出账号登录的交互提示,因此直接终止运行,未执行后续向angular.json写入部署目标配置的逻辑,最终导致后续ng deploy命令因找不到对应部署配置失败。
解决方案
你可以根据自己的使用习惯任选以下任意一种方案处理:
- 方案1:切换终端执行
改用Windows系统自带的PowerShell或CMD终端进入项目目录,先执行npm uninstall @angular/fire清理已安装的包,再重新运行ng add @angular/fire。这两个终端默认属于交互模式,会正常弹出Firebase账号登录提示,完成登录后流程会自动写入angular.json的部署配置,后续ng deploy可正常运行。 - 方案2:传入CI令牌在Git Bash中完成操作
提前生成Firebase认证令牌,跳过交互登录步骤:- 全局安装Firebase CLI:
npm install -g firebase-tools - 执行CI令牌生成命令:
firebase login:ci,此时会自动弹出浏览器,登录你的Firebase账号后终端会输出一串认证令牌,复制保存该令牌 - 在Git Bash的项目目录下执行命令:
NG_CONFIG_PARAMS=--token=替换为你复制的令牌 ng add @angular/fire
执行完成后配置会自动写入,无需再走交互登录流程。
- 全局安装Firebase CLI:
- 方案3:手动补充配置
如果不想重新执行ng add流程,你可以手动修改项目根目录下的angular.json文件,在项目对应architect配置项下补充deploy部署目标配置,再全局安装Firebase CLI后执行firebase login完成账号登录,即可正常使用ng deploy功能。
内容的提问来源于stack exchange,提问作者danday74
相关产品推荐
相关产品推荐

