2019-01-05 babel 介绍

http://webpack.wuhaolin.cn/3%E5%AE%9E%E6%88%98/3-1%E4%BD%BF%E7%94%A8ES6%E8%AF%AD%E8%A8%80.html   

1:es6、es7、es2015、。。。

现阶段标准委员会决定每年6月份发布一次版本,而这个版本已当前的年份命名。

es2015就是es6.在2015年6月份发布

es2016就是es7 在2016年6月份发布 


2:Babel-presets

Babel-presets是babel规范的一个总结,比如es2015、es2016、es2017等。开发中我们经常用env,因为env根据你支持的环境自动决定适合你的 Babel 插件的 Babel preset,我理解就是根据当前环境自动选择es2015、es2016、es2017中的某一个。

babel-preset-stage 0-3表示规范组正式发布几个阶段的所有的presets。推荐2

-----------------------注意-------------------

2019-6-6更新: babel升级到7以后,会移除 babel-preset-stage,如果需要使用,需要自己配置




3:babel-polyfill与babel-runtime的选择

Babel-presets只负责转换语法,而最新的api、函数是不支持转换的。上面这两个就是用来解决这个问题的

babel-polyfill:这个会将新的api直接添加到全局对象上,会造成全局对象的污染

推荐以下

babel-runtime:这个是需要使用的地方使用import引进去,不过可以使用babel-plugin-transform-runtime这个插件,配置一下省去手动import的痛苦。而且,还做了公共方法抽离,不会重复引用。减少代码量。babel-plugin-transform-runtime 和 babel-runtime需要配套使用

4:webpack中使用

Webpack 接入 Babel 必须依赖的模块 npm i -D babel-core babel-loader

根据你的需求选择不同的 Plugins 或 Presets  npm i -D babel-preset-env


总结:babel7以前转换es6语法需要以下:

babel-preset-env

babel-preset-stage-2

babel-plugin-transform-runtime

babel-runtime

你可能感兴趣的:(2019-01-05 babel 介绍)