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

升级firebase-functions与firebase-admin后执行npm run build失败

问题诊断与解决方案

问题原因

你遇到的编译错误源于TypeScript版本不兼容。错误信息中的Extract类型使用了模板字符串的条件类型推断语法(比如Part extends \{${infer Param}=**}``),这是TypeScript 4.1及以上版本才支持的特性。而你的项目当前使用的TypeScript版本可能低于这个要求,无法解析firebase-functions v4、firebase-admin v10依赖包中的新类型定义。

同时,firebase-functions v4对依赖的类型包(如@types/express-serve-static-core)有更高版本要求,旧版TS无法兼容这些包的类型语法。

可行解决方案

1. 升级TypeScript到兼容版本

根据Node.js 14的支持范围(TS 4.1到4.9.x),安装稳定的高版本TypeScript:

npm install --save-dev typescript@^4.9.0

2. 调整tsconfig.json配置

确保TypeScript编译配置符合firebase-functions v4的要求,修改tsconfig.json的compilerOptions:

{
  "compilerOptions": {
    "target": "ES2020", // 匹配Node14的支持特性
    "module": "CommonJS",
    "lib": ["ES2020"],
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true, // 跳过第三方包的类型检查,避免无关报错
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

3. 彻底清理依赖并重新安装

执行以下命令清除旧依赖缓存,确保新包版本正确安装:

rm -rf node_modules package-lock.json
npm install

4. 验证修复效果

重新执行构建命令:

npm run build

如果仍有报错,检查是否存在其他第三方包版本过低的情况,同步升级这些包的版本(比如@types/node需要升级到匹配Node14的版本,如@types/node@^14.18.36)。

关于部署的影响

  • 本地npm run build失败时,直接部署会大概率失败。因为Firebase Functions部署TS项目时,云端会执行与本地一致的编译步骤,未解决的语法错误会导致部署中断。
  • 建议先解决本地构建问题后再执行部署。另外,Node.js 14已进入Firebase Functions的 deprecation阶段(官方推荐使用Node16或18),如果项目允许,可考虑升级Node版本到16+,同时对应升级TypeScript到5.x版本,能获得更好的兼容性和性能。

内容的提问来源于stack exchange,提问作者Juan Giacosa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:25:18