You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Angular Universal部署Firebase Functions的npm依赖冲突

问题

部署Angular Universal项目时,npm run build:ssr编译正常、模拟器运行无问题,但执行firebase deploy时触发npm依赖冲突错误,具体错误日志如下:

=== Deploying to 'terabulkssr2'...

i  deploying functions, hosting
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
i  artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
+  artifactregistry: required API artifactregistry.googleapis.com is enabled
+  functions: required API cloudbuild.googleapis.com is enabled
+  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: preparing codebase default for deployment
i  functions: preparing functions directory for uploading...
i  functions: packaged C:\Users\Fujitsu\terabulk\terabulk-front-ssr\dist\functions (14.54 MB) for uploading
+  functions: functions folder uploaded successfully
i  hosting[terabulkssr2]: beginning deploy...
i  hosting[terabulkssr2]: found 335 files in functions
+  hosting[terabulkssr2]: file upload complete
i  functions: updating Node.js 16 function ngssr(us-central1)...
Build failed: npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: @nguniversal/module-map-ngfactory-loader@8.2.6
npm ERR! Found: @angular/common@14.1.3
npm ERR! node_modules/@angular/common
npm ERR!   @angular/common@"^14.1.3" from the root project
npm ERR!   peer @angular/common@"^14.0.0 || ^15.0.0" from @angular/cdk@14.1.3
npm ERR!   node_modules/@angular/cdk
npm ERR!     @angular/cdk@"^14.1.2" from the root project
npm ERR!   18 more (@angular/fire, @angular/forms, ...)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/common@"^8.2.0" from @nguniversal/module-map-ngfactory-loader@8.2.6
npm ERR! node_modules/@nguniversal/module-map-ngfactory-loader
npm ERR!   @nguniversal/module-map-ngfactory-loader@"^8.2.6" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: @angular/common@8.2.14
npm ERR! node_modules/@angular/common
npm ERR!   peer @angular/common@"^8.2.0" from @nguniversal/module-map-ngfactory-loader@8.2.6
npm ERR!   node_modules/@nguniversal/module-map-ngfactory-loader
npm ERR!     @nguniversal/module-map-ngfactory-loader@"^8.2.6" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /www-data-home/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /www-data-home/.npm/_logs/2022-08-20T16_19_35_316Z-debug-0.log; Error ID: beaf8772

Functions deploy had errors with the following functions:
        ngssr(us-central1)
i  functions: cleaning up build files...

Error: There was an error deploying functions

错误核心是@nguniversal/module-map-ngfactory-loader@8.2.6要求peer依赖@angular/common@^8.2.0,但项目使用的是@angular/common@14.1.3,版本不兼容。尝试firebase deploy --force无效,需解决依赖冲突或强制完成部署。

解决方案

一、彻底修复依赖冲突(推荐)

@nguniversal/module-map-ngfactory-loader在Angular 10及以后版本已被官方弃用,Angular 14无需该包,直接移除即可:

  • 执行命令卸载依赖:
npm uninstall @nguniversal/module-map-ngfactory-loader
  • 检查项目代码(如app.server.module.ts),移除所有对该包的引用,替换为Angular 14原生的SSR路由配置逻辑。

二、强制Firebase云端构建忽略peer依赖(临时方案)

若需临时跳过依赖冲突完成部署,可通过firebase.json配置让云端执行npm安装时添加--legacy-peer-deps参数:

  1. 打开项目根目录的firebase.json文件
  2. 修改functions配置,添加predeploy命令:
{
  "functions": {
    "predeploy": ["npm --prefix \"$RESOURCE_DIR\" install --legacy-peer-deps"]
  }
}
  1. 重新执行firebase deploy,此时云端构建会忽略peer依赖冲突完成安装。

内容的提问来源于stack exchange,提问作者Adam Howard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 08:15:29