【问题标题】:Cloud functions: spread operator in object not working云功能:对象中的传播运算符不起作用
【发布时间】:2020-07-06 05:06:29
【问题描述】:

我正在尝试部署我的功能,但出现以下错误:

> functions@ lint /Users/../functions
> eslint .


/Users/../functions/index.js
  42:40  error  Parsing error: Unexpected token ..

相关代码为:

await privateRef.set({
    ...response.data, // <-- line 42
    updatedAt: admin.firestore.FieldValue.serverTimestamp()
}, { merge: true })

这是 package.json:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "10"
  },
  "dependencies": {
    "@mollie/api-client": "^3.2.0",
    "firebase-admin": "^8.10.0",
    "firebase-functions": "^3.6.1",
    "moment": "^2.27.0"
  },
  "devDependencies": {
    "eslint": "^5.12.0",
    "eslint-plugin-promise": "^4.0.1",
    "firebase-functions-test": "^0.2.0"
  },
  "private": true
}

我的本​​地节点版本:v13.12.0

它在本地工作,但对象中的扩展运算符似乎没有通过 eslint 验证。据我了解,节点 10 支持对象中的扩展运算符 (node.green)。

我应该调整 eslint 验证规则吗?如果谷歌云功能环境不支持,我不想强​​制验证代码..

任何帮助将不胜感激,因为我正在努力使用所有这些 eslint、babel、ecmaVersion 概念:-/

更新

我在 .eslintrc.json 中将 ecmaVersion 从 2017 年切换到 2019 年。没有错误,但它是正确的吗?为什么 ecmaVersion 最初设置为 2017?

【问题讨论】:

  • 我在.eslintrc.json 中将 ecmaVersion 从 2017 年切换到 2019 年。没有错误,但它是正确的吗?为什么 ecmaVersion 最初设置为 2017?
  • 如果您有信息要添加到您的问题中,您可以使用底部的编辑链接直接编辑问题,而不是添加评论。

标签: javascript google-cloud-functions eslint


【解决方案1】:

在 ES2018 中添加了对象字面量的扩展运算符(如您在此处所示)。它们在 ES2017 中不可用。 (但是,数组文字的传播是可用的 - 你可能会混淆两者。)因此,你必须告诉你的工具来识别 ES2018 语法。

你的 package.json 中的 node 版本与 eslint 的作用无关。如您所见,eslint 有自己的配置,与您所针对的节点版本无关。您需要确保所有工具的配置与您的代码同步。

另见我的blog on migrating Cloud Functions to node 10

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 2020-06-19
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多