Как я могу использовать ES7 в nodejs?

Как я могу использовать ES7 (ECMAScript 2016) в nodejs? Как я могу использовать его в производстве?

И в какой версии узла мне не нужно использовать какой-либо модуль для этого?

Любая помощь приветствуется.

Ответ 1

Примечание. Этот вопрос был явно о ES2016 (ES7). См. Обновления для ES2017 (ES8).

ES7 имеет только две основные функции:

  1. Array.prototype.includes
  2. ** (оператор возведения в степень)

См. В Mozilla Development Network для получения дополнительной информации:

Согласно node.green, они доступны в узле, соответственно:

  • 5.0 с флагом гармонии и 6.0 без флага (Array.prototype.includes)
  • 6.5 с флагом гармонии и 7.0 без флага (возведение в степень)

Увидеть:

Экспоненциация - это последняя функция ES7, которая была добавлена в Node, поэтому, если вы хотите использовать все функции ES7 без флагов, вам понадобится хотя бы Node 7.0. Если вы можете использовать флаг --harmony вы можете использовать хотя бы Node 6.5.

Версия 6.x - LTS (долгосрочная поддержка), поэтому вы можете предпочесть ее более 7.x, но для использования функций ES7 вам понадобится флаг.

На момент написания этой статьи текущие версии узла:

  • v6.10.3 LTS (рекомендуется для большинства пользователей)
  • v7.10.0 Текущий (последние функции)

V8.0 LTS будет выпущен в ближайшее время - в настоящее время вы можете использовать ночные сборки Node 8.0.

Для получения дополнительной информации о расписании выпуска см.:

Для других версий для загрузки - см.:

Обновление для ES2017

Отвечая на вопрос из комментариев, async/await является особенностью ES2017 (ES8), а не ES2016 (ES7), поскольку этот вопрос был о. Увидеть:

  • Спецификация: Последний проект ECMAScript (ECMA-262) Определение "async function" в этой спецификации.
  • Статус: Черновик
  • Комментарий: Исходное определение в ES2017.

async/ожидание в узле

Вы можете использовать async/wait в:

  • Узел 7.0 с флагом --harmony
  • Узел 7.6 без флага

Для получения дополнительной информации см.:

В местах, где у вас нет встроенной поддержки async и await вы можете использовать Babel:

или со слегка отличающимся синтаксисом, основанный на генераторе подход, например, в co или Bluebird coroutines:

См. Эти ответы для получения дополнительной информации:

Они включают больше информации о совместимости и возможных обходных решениях.

Ответ 2

Существует этот сайт http://node.green/, который показывает уровень совместимости различных версий NodeJS с различными версиями стандартов ES.

Ответ 3

Вы должны использовать флаг --harmony, например:

node --harmony server.js