babel plugins 翻译

plugins

BABEL是一个编译器(source=>output),类似其他编译器,需要经历3个阶段:解析,转换,输出;
单独的babel不会做什么,需要适当的插件来实现需要的功能;
可以使用preset添加一个插件集,不用一个一个单独加载了;
在 .babelrc:
{
  "parserOpts": {
    "plugins": ["jsx", "flow"]
  }
}
如果plugin在npm,传递plugin的名称,babel会检查并安装;
{
  "plugins": ["babel-plugin-myPlugin"]
}
可以指定绝对、相对路径
{
  "plugins": ["./node_modules/asdf/plugin"]
}

plugin ordering

Plugins run before Presets.
Plugin ordering is first to last.
Preset ordering is reversed (last to first).
例如
{
  "plugins": ["transform-decorators-legacy", "transform-class-properties"]
}

会先运行transform-decorators-legacy 然后是 transform-class-properties.
presets顺序正好相反:
{
  "presets": ["es2015", "react", "stage-2"]
}
运行顺序: stage-2, react, then es2015.