Javascript 云函数:对象中的扩展运算符不工作
我正在尝试部署我的函数,但出现以下错误:Javascript 云函数:对象中的扩展运算符不工作,javascript,google-cloud-functions,eslint,Javascript,Google Cloud Functions,Eslint,我正在尝试部署我的函数,但出现以下错误: > 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.
> 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 })
我的本地节点版本:v13.12.0
它在本地工作,但对象中的spread运算符似乎未通过eslint验证。。据我所知,节点10支持object()中的spread操作符
我应该调整eslint验证规则吗?如果google云功能环境不支持,我不想强制验证代码
如果有任何帮助,我将不胜感激,因为我正在努力处理所有这些eslint、babel和ecmaVersion概念:-/
已更新
我在.eslintrc.json中将ecmaVersion从2017年切换到2019年。没有错误,但正确吗?为什么最初将ecmaVersion设置为2017?在ES2018中添加了对象文本的扩展运算符(如您在此处所示)。它们在2017年欧洲标准日不可用。(然而,数组文本的分布是可用的——您可能会混淆两者。)因此,您必须告诉您的工具识别ES2018语法 package.json中node的版本与eslint的功能无关。正如您所看到的,eslint有自己的配置,它独立于您所针对的节点的版本。由您来确保所有工具的配置与代码同步
另请参见我的。我在
.eslintrc.json
中将ecmaVersion从2017年切换到2019年。没有错误,但正确吗?为什么最初将ecmaVersion设置为2017?如果您有信息要添加到问题中,只需使用底部的编辑链接编辑问题,而无需添加注释。
{
"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
}