Почему версия узла в CloudBase Firebase так устарела?

В соответствии с https://cloud.google.com/functions/docs/writing/, облачные функции Firebase используют Node v6.11.5

Есть ли представление о том, почему была выбрана такая старая версия, особенно учитывая, что это не позволяет мне использовать более новый синтаксис на языках JS, таких как ECMA6?

Ответ 1

EDIT: с облаком в 2018 году функции облака вышли из бета-версии. Теперь есть поддержка узла 8, но сейчас она находится в бета-версии.

Есть много вещей, о которых нужно помнить.

Облачные функции будут использовать только версию узла с LTS (долгосрочная поддержка). Только четные версии узлов получают LTS.

Облачные функции находятся в стадии бета-тестирования, а команда разработчиков имеет более важные приоритеты, чем предоставление новой версии узла. Это приоритет для получения готовности к производству, и это необязательно связано с наличием последней версии узла.

Невозможно просто отказаться от новой основной версии, поскольку это может сломать существующих клиентов. Вероятно, это будет так, что каждый проект может выбрать версию узла, которую они хотели бы использовать, и что это существенное изменение.

Вы можете использовать любой язык, который вы хотите, который может переместиться на ES6. Это включает в себя TypeScript и даже Kotlin, если хотите. Firebase CLI поддерживает TypeScript напрямую и имеет несколько месяцев. TypeScript - это, по сути, команда разработчиков Firebase, рекомендованная для разработки.

Если вы хотите оставаться на вершине новейших языков для разработки облачных функций, я настоятельно рекомендую вам не зависеть от версии узла. Вместо этого выберите инструмент, который может переместиться на ES6.

Ответ 3

Обновление: поддержка Node 6 устарела. Последние firebase-tools теперь добавляют следующее в functions/package.json, если у вас его нет, вы можете добавить его:

"engines": { "node": "8" }

Firebase только что запустил бета-версию Node 10, вы можете использовать это:

"engines": { "node": "10" }