Babel是一个语法转码器,意在将ES6代码转为浏览器广泛支持的ES5代码。
\注意,Babel只做语法的转化,比如箭头函数的转换,并不提供*API的支持,如果需要提高兼容性,还需要其他模块插件支持。
配置文件.babelrc
存放在项目根目录
|
|
presets设置转码规则,每个规则对语法的支持度不同,常用preset-2015,具体选择哪些规则按自己的需求而定。
Babel-core
通过Babel的API进行转码
|
|
Babel-register
该模块是用来改造nodejs中的require方法,为其添加一个钩子,使require在之后加载模块的时候直接使用Babel实时转码,也可以对其配置
|
|
Babel-polyfill
提高代码的兼容性,必须使用babel-polyfill模拟一个ES2015的环境,babel-polyfill是对全局环境的修改。
为了引入Babel-polyfill只需要在入口文件引入文件即可
|
|
Babel-runtime
与Babel-polyfill一样,Babel-runtime也是模拟ES2015的环境,不同的是Babel-runtime不会污染全局变量。Babel-runtime可以将一些babel内置的助手函数单独抽取出来,减少代码冗余。另外一点Babel-runtime将见一些内置的API放置在core-js中,需要的时候只需要require('babel-runtime/core-js/promise')加载进来,避免了通过polyfill扩展全局变量的尴尬。如果是要发布一个库,做好的方式还是采用Babel-runtime这种方式,它让你完全控制代码的运行环境,不受浏览器的影响。
Babel-runtime的使用多和babel-plugin-transform-runtime配合使用,提高开发效率
|
|
以上的配置都需要根据自己的实际运行环境来选择。