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
网友评论