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

Angular12 SSR部署Firebase函数时报createRequire不存在错误如何解决

错误根因

报错TypeError: module__default.default.createRequire is not a function的核心原因是:createRequire是Node.js v12.2.0版本才新增的内置API,你当前的运行环境为Node 10,而新版@firebase/firestore包的Node端实现已经依赖了这个API,因此在Node 10环境下无法正常加载运行。
之前部署正常是因为旧版本的@firebase/firestore没有用到该API,依赖包自动升级后就触发了兼容性问题。

修复方案

可根据项目实际情况选择以下任意一种方案:

  • 方案一:升级Node.js运行环境(推荐)

    1. 将本地开发环境的Node.js版本升级到v12.2.0及以上,优先选择v14 LTS版本,兼容性更稳定
    2. 修改Firebase Functions的运行时配置,打开functions目录下的package.json,新增/修改engines字段:
    {
      "engines": {
        "node": "14"
      }
    }
    
    1. 重新执行依赖安装、构建、部署流程即可
  • 方案二:锁定@firebase/firestore兼容版本
    若暂时无法升级Node.js版本,可以将@firebase/firestore锁定到支持Node 10的最后一个版本:

    1. 执行命令安装指定版本:
      npm install @firebase/firestore@3.4.0 --save
    2. 若使用yarn作为包管理器,可以在package.json中增加resolutions字段强制锁定版本:
    {
      "resolutions": {
        "@firebase/firestore": "3.4.0"
      }
    }
    
    1. 重新构建部署即可,该方案为临时兼容方案,后续还是建议尽快升级Node.js版本,避免出现其他依赖的兼容性问题。
  • 方案三:调整SSR构建逻辑
    若SSR端不需要用到Firestore功能,可以在angular.json的SSR构建配置中,将@firebase/firestore加入外部依赖排除列表,避免将其打包进服务端bundle;也可以在代码中增加运行环境判断,仅在客户端侧加载Firestore相关逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:04