默认情况下,BabelJS 不会转译 ES6 语法的匿名函数?

By default, BabelJS doesn't transpile anonymous function of ES6 syntax?

我正在使用 Babel 6.1.2

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

当我用匿名函数编译 ES6 代码时,我发现代码根本没有转译为 ECMAScript 5 语法。

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

有人对此有想法吗?谢谢!

找到方法:

安装插件

$ 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;
});

来自官方 6.0 发布博文 (https://babeljs.io/blog/2015/10/29/6.0.0/):

由于 Babel 专注于成为 JavaScript 工具平台而不是 ES2015 转译器,我们决定让所有插件都选择加入。这意味着当你安装 Babel 时,它将不再默认转译你的 ES2015 代码。

您将需要插件或预设来实际转换您的代码。

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