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