Я хочу использовать Node 8 для функций Firebase. Я добавил строку "engines": {"node": "8"} в свой package.json. Вот как это выглядит:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"assert": "^1.4.1",
"firebase-admin": "~6.0.0",
"firebase-functions": "^2.1.0",
"firebase-tools": "^6.2.2",
"moment": "^2.22.2",
"mysql": "^2.16.0",
"npm-check-updates": "^2.15.0",
"request": "^2.88.0"
},
"devDependencies": {
"eslint": "^5.12.0",
"eslint-plugin-promise": "^4.0.1"
},
"engines": {
"node": "8"
},
"private": true
}
И у меня есть нужная версия инструментов.
npm информация версия firebase-functions
2.1.0
npm информация версия firebase-tools
6.2.2
узел - версия
v8.13.0
Однако при развертывании функций Link по-прежнему жалуется на async и await:
7:7 error Parsing error: Unexpected token function
Это минимальный код, воспроизводящий проблему. db.query () возвращает обещание.
const db = require("../db");
run().then(result => {
console.info("done");
});
async function run() {
return db.query("select * from events");
}
К вашему сведению, есть гораздо более новые основные версии eslint и eslint-plugin-prom. Вы пробовали обновить все свои зависимости?
показывает ли команда firebase, развертываете ли вы функцию node6 или 8 при развертывании?
эээ, вы имеете в виду, что lint все еще жалуются, когда вы набираете Link?
Дуг, спасибо за помощь. Я обновил его целиком. Также обновлены плагины eslint и eslint, но это не помогло.
Уильям, спасибо за помощь. Да, ссылка была опечаткой. К сожалению, firebase cli не показывает, какую версию узла я развертываю.
@DougStevenson, спасибо за полезная запись. У меня все еще есть проблема с обновлением до Node 10 - есть какие-нибудь советы? stackoverflow.com/questions/63644107/…



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В functions / есть скрытый файл .eslintrc.json. Вам также необходимо обновить поле ecmaVersion.
Измените вопрос, чтобы отобразить полный, минимальный код, который воспроизводит проблему, а не только одну строку.