По подразбиране BabelJS не транспилира анонимна функция на синтаксиса на ES6?

Използвам Babel 6.1.2

$ babel --version
6.1.2 (babel-core 6.1.2)

Когато компилирам ES6 код с функция anoymous, открих, че кодът изобщо не е транспилиран в синтаксиса на ECMAScript 5.

$ echo "()=>1" | babel 
() => 1;

Някой има ли идеи за това? Благодаря!


person Hanfei Sun    schedule 10.11.2015    source източник
comment
Изглежда този въпрос се задава всеки ден поне веднъж. Моля, използвайте търсачката!   -  person Felix Kling    schedule 10.11.2015


Отговори (2)


От официалната публикация в блога за версия 6.0 (https://babeljs.io/blog/2015/10/29/6.0.0/):

Тъй като Babel се фокусира върху това да бъде платформа за инструментариум на JavaScript, а не транспилер на ES2015, ние решихме да направим всички добавки включени. Това означава, че когато инсталирате Babel, той вече няма да транспилира вашия ES2015 код по подразбиране.

Ще ви трябват плъгини или предварително зададени настройки, за да транспилирате действително вашия код.

https://babeljs.io/docs/plugins/#presets

person Timon    schedule 10.11.2015

Намерих начин:

Инсталирайте плъгина

$ npm install babel-plugin-transform-es2015-arrow-functions

Добавете следното към .babelrc

{
  "plugins": ["transform-es2015-arrow-functions"]
}

След това работи

$ echo "() => 1" | babel --plugins transform-es2015-arrow-functions 
(function () {
  return 1;
});
person Hanfei Sun    schedule 10.11.2015