配置文件 .babelrc
基本配置书写
{
"presets":[],
"plugins":[]
}
- presets 字段设定转码规则;常用的规则集 babel-preset-es2015 babel-preset-react babel-preset-stage-*(*为0-3,对应es7不同阶段语法提案的转码规则 共4个阶段)
- plugin presets,也就是一堆plugins的预设,起到方便的作用。如果你不采用presets,完全可以单独引入某个功能。常用的插件
transform-runtime
{
"plugins": ["transform-runtime", options]
}
主要有以下options选择。
- helpers: boolean,默认true;使用babel的helper函数。
- polyfill: boolean,默认true;使用babel的polyfill,但是不能完全取代babel-polyfill。
- regenerator: boolean,默认true;使用babel的regenerator。
- moduleName: string,默认babel-runtime;使用对应module处理。
一般情况默认设置即可,详细文档
自定义预设或插件
Babel支持自定义的预设(presets)或插件(plugins)。
如果你的插件在npm上,
可以直接采用这种方式“plugins”: [“babel-plugin-myPlugin”]
等价方式“plugins”: [“myPlugin”]。此外,你还可以采用本地的相对路径引入插件,比如“plugins”:[“./node_modules/Myplugin”]。
presets同理。
babel官网
babel命令
balel a.js
直接输出转换后的js
babel a.js --out-file b.js
babel a.js -o b.js
输出到b.js
babel dir1 --out-dir dir2
babel dir1 -d dir2
路径下输出
babel src -d lib -s
-s 参数生成source map文件
babel-cli
babel-cli带一个babel-node 支持类似node 可以直接运行ES6
babel-regiser
babel-register模块改写require命令,为它加上一个钩子。此后,每当使用require加载.js、.jsx、.es和.es6后缀名的文件,就会先用Babel进行转码,在js…文件中引入;
require("babel-register");
就不需要手动对index.js转码了