SailsJS поддерживает ES6?

Есть ли способ получить ES6 в sails.js?

5 ответов

Решение

Это вопрос node.js, а не вопрос парусов. Да, текущая версия node.js поддерживает определенные стандарты ES2015 в зависимости от версии Node.js и флагов, которые вы используете при запуске сервера.

Большинство функций уже активны, однако, чтобы использовать все функции, вы должны использовать node app.js --es_staging или же node app.js --harmony в папке вашего проекта вместо sails lift

Следующая ссылка предоставляет обновленную информацию о том, какие функции поддерживает текущая версия Node и как получить к ним доступ.

https://nodejs.org/en/docs/es6/

SailsJS - это просто фреймворк, написанный с использованием синтаксиса ES5, и ему не требуется поддержка ES6.

Вы можете написать проект с синтаксисом ES6, как обычно, и использовать Babel\Traceur\ для запуска.

Мой поток следующий:

  • Создать проект Sails;
  • устанавливать babel как devDependencies;
  • Обновить npm start сценарий в package.json с "start": "babel-node app.js";

Вот и все. Я могу написать код ES6\7 в моих контроллерах \ моделях \ и т.д. и запустить сервер через npm start команда. Он работает как обычно, как вы написали с синтаксисом ES5.

Babel Transpiler

Вавилонский узел

Вам нужно проверить совместимость ES6 с node.js вместо любых фреймворков, таких как sails.js, express и т. Д.

Потому что наконец node.js изменит javaScript на код серверной части. Так что не имеет значения, какую платформу вы используете.

Вы можете использовать паруса с ES6:

Для совместимости с ES6 проверьте kangax.github.io.

Рекомендуемые:

Sails v 0.11.0 или выше

Узел v 4 .. или больше

npm v 2.14.4 или выше

Теперь вы готовы изучить новую функцию Ecmascript6.

Вы получите новую функцию от http://es6-features.org/.

ТЕСТОВОЕ ЗАДАНИЕ:

Код:

ecma6Test:function(req,res,next){
    var evens =req.body.evens
    odds  = evens.map(v => v + 1);
    res.json({sucess:true,'odds':odds});
}

Запрос:

{"evens":[2,4,6,8,10]}

Отклик:

{
    "sucess": true,
    "odds":[3, 5, 7, 9, 11]
}

Ответ Вишну покрыл тебя.

Подробный список функций ES6, доступных в последней версии узла, можно найти здесь https://nodejs.org/en/docs/es6/

Какие функции ES6 поставляются с Node.js по умолчанию (флаг выполнения не требуется)?

  • пусть (только в строгом режиме)
  • Const
  • функция в блоках (только в строгом режиме)
    • Начиная с версии 8 3.31.74.1, декларации с областью действия намеренно реализованы с несоответствующим ограничением кода строгого режима. Разработчики должны знать, что это изменится, поскольку v8 продолжает соответствовать спецификации ES6.
  • Классы (только в строгом режиме)
  • Коллекции
  • карта
  • WeakMap
  • Задавать
  • WeakSet
  • Типизированные массивы
  • Генераторы
  • Двоичные и восьмеричные литералы
  • Расширения литералов объектов (сокращенные свойства и методы)
  • обещания
  • Новые строковые методы
  • Символы
  • Шаблонные строки
  • Стрелка Функции

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

В настоящее время, начиная с v6.0.1, библиотека будет работать с файлами, загруженными после запуска парусов. Это означает, что если вы хотите использовать ES2015, например, в вашем config/routes.js файл, вы получите синтаксическую ошибку. Но, как предлагается в этом выпуске, он должен работать, например, с файлами в api папка.

Другие вопросы по тегам