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

Firebase Functions使用Node.js 8部署报错:async/await语法解析失败

解决Firebase Functions部署时ESLint报Unexpected token function的问题

你的问题核心在于:Node.js 8本身完全支持async函数语法,但你的ESLint配置还没同步开启对ES2017特性的解析支持,所以才会抛出这个解析错误。下面是具体的解决步骤:

  • 检查/创建ESLint配置文件
    在你的functions目录下,确认是否存在.eslintrc.json(或.eslintrc.js)配置文件:

    • 如果没有,直接新建一个;如果已有,修改内容加入以下关键配置:
    {
      "env": {
        "node": true,
        "es6": true
      },
      "parserOptions": {
        "ecmaVersion": 2017
      },
      "extends": "eslint:recommended",
      "plugins": ["promise"],
      "rules": {
        "promise/always-return": "error",
        "promise/no-return-wrap": "error"
      }
    }
    

    其中ecmaVersion: 2017是关键,它会告诉ESLint识别ES2017标准的语法(包括async/await);env.node: true则会启用Node.js相关的全局变量与语法支持。

  • 本地验证配置有效性
    修改完成后,先在本地执行npm run lint测试,如果之前的解析错误消失,说明配置生效了,再执行firebase deploy --only functions部署即可。

  • 快速生成适配配置(可选)
    你也可以在functions目录下运行npx eslint --init,在向导中依次选择:

    • 检查语法并发现问题
    • CommonJS (require/exports)
    • Node.js
    • 不使用TypeScript
    • JSON格式配置文件
      工具会自动生成适配Node.js环境的ESLint配置,同样能解决语法识别问题。

补充说明:你的代码本身没有问题,Node.js 8可以正常运行,只是ESLint默认解析规则没跟上Node版本的语法支持,调整配置后就能解决部署报错的问题。

内容的提问来源于stack exchange,提问作者Xi 张熹

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:34:53