У меня есть проект, который успешно разворачивается в функции firebase с использованием движка Node 8 из моей локальной среды разработки в firebase.Я пытался заставить его работать с CloudBuild, однако, я получаю синтаксическую ошибку из-за использования ключевого слова async:
/workspace/functions/lib/index.js:13
Step #5: app.get('XXXXXXXXX', async (req, resp) => {
Step #5: ^
Step #5:
Step #5: SyntaxError: Unexpected token (
Step #5: at createScript (vm.js:56:10)
Step #5: at Object.runInThisContext (vm.js:97:10)
Step #5: at Module._compile (module.js:549:28)
Step #5: at Object.Module._extensions..js (module.js:586:10)
Step #5: at Module.load (module.js:494:32)
Step #5: at tryModuleLoad (module.js:453:12)
Step #5: at Function.Module._load (module.js:445:3)
Step #5: at Module.require (module.js:504:17)
Step #5: at require (internal/module.js:20:19)
Step #5: at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:21:11
Указывает, что механизм узла не распознает асинхронное / ожидание, то есть не Узел 8Движок установлен в package.json и работает в моей локальной среде.
"engines": {
"node": "8"
}
В развертывании используется контейнер Firebase, как описано в документации :
- name: 'gcr.io/[PROJECT_NAME]/firebase'
args: [ 'deploy', '-P', 'prod', '-f', '--only', 'functions','--token', '${_FIREBASE_TOKEN}']
Может ли CloudBuild развертываться на другой / внутренней конечной точке для функций Firebase, которые не поддерживают Node8 и, следовательно, беззвучно понижать версию?
Или есть что-то еще, что я пропустил?
IЯ пытался доказать эту теорию, изменив .tsconfig на es2015 вместо es2017 и удалил раздел двигателей из package.json.В результате функция развернута в функции Node8?
Step #5: deploying functions
Step #5: functions: ensuring necessary APIs are enabled...
Step #5: functions: all necessary APIs are enabled
Step #5: functions: preparing functions directory for uploading...
Step #5: functions: packaged functions (91.42 KB) for uploading
Step #5: functions: functions folder uploaded successfully
Step #5: functions: updating Node.js 8 function XXXXXX(us-central1)...
Step #5: functions[XXXXXXX(us-central1)]: Successful update operation.
Step #5:
Step #5: Deploy complete!
Я думаю, это потому, что функция узла 8 уже существует, так что это было просто обновление, а не создание, но, возможно, указывает, что анализатор кода - это узел 6на основе и игнорирует настройки движка при развертывании через cloudbuild?