Поддерживает ли 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
.