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

部署Firebase Node.js函数遇语法错误:Unexpected token '?'

解决Firebase函数部署时的SyntaxError: Unexpected token '?'错误

错误原因

你遇到的??是ES2020引入的空值合并运算符,Node.js 12及更早版本不支持这个语法。虽然你的package.json里engines配置了node: "16",但实际执行部署时使用的Node.js版本可能低于14,导致无法解析该语法。

解决方案

1. 检查本地Node.js版本

在终端运行:

node -v

如果输出版本低于14.x,需要切换到16.x版本。可以用版本管理工具(比如nvm)切换:

nvm install 16
nvm use 16

2. 确认Firebase CLI使用的Node.js版本

Firebase CLI可能自带独立的Node.js环境,和你本地全局版本不一致。可以通过以下方式指定Firebase函数使用的Node版本:

  • 确保functions/package.json的engines字段配置正确:
    "engines": {
      "node": "16"
    }
    
  • 部署时强制指定Node版本:
    FIREBASE_NODEJS_VERSION=16 firebase deploy --only functions
    

3. 核对firebase-admin版本兼容性

如果你的firebase-admin版本过高,可能要求更高的Node.js版本(比如部分新版本要求Node 18+)。可以降级到适配Node 16的稳定版本,例如:

npm install firebase-admin@11.11.0 --save

4. 清理依赖重新安装

删除旧依赖和锁文件,重新安装确保版本一致:

rm -rf node_modules package-lock.json
npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:01:43