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

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

Ответы

Ответ 1

Это вопрос 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/

Ответ 2

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

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

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

  • Создать проект Sails;
  • Установите babel как devDependencies;
  • Обновить npm start script в package.json с помощью "start": "babel-node app.js";

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

Babel Transpiler

Babel Node

Ответ 3

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

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

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

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

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

Sails v 0.11.0 или больше

Node 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]
}

Ответ 4

Ответ Вишну, который вы рассмотрели.

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

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

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

Ответ 5

Существует sails-hook-babel, который может сработать для вас. Это не работает для меня, как я объясняю ниже, но я надеюсь, что он станет более заметным, будет улучшен, и тогда этот ответ будет более уместным.

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