babel 个人理解

babel 总结

个人看了网上很多写babel的文章,都写的如何使用,关于babel为什么这样使用,为什么babel  有插件,presets,ployfill 并未说明

 

出现的背景:
由于JavaScript 的标准在不断的更新,出现新的语法(就是新的写法,比如箭头函数),新的对象,原有对象新增属性,新增的api 。但是javascript的各种执行环节只实现了部分的特性(浏览器:chome,火狐等,node)。这种情况下需要一种编译工具来抹平各种执行环境之间实现的不同,能够让我们用到最新的js写法。这种情况下就出现了babel


(插件传送门:https://www.babeljs.cn/docs/plugins/)
babel 对新的语法处理 用到的是插件  plugins  就是对新的语法 转换成 原有的 es5 写法。
需要用到对一种新语法转换 就 添加一个插件


由于新语法特别多,为了方便开发者使用 babel 就把各种plugins 集合成一个个presets(传送门:https://www.babeljs.cn/docs/plugins/)
每个presets 就是一系列插件集合
官网有以下 presets:env,react,flow 等等

 


babel 对新的对象,新增的属性,新增的api 处理 用到的是Polyfill ,由于执行环境可能还没有这些实现,就通过自己实现的方式来给增加。


最后总结下:
babel 转换新语法用到的是插件,由于插件很多,就出现了presets。 但是新增的api,属性,对象无法转换,就出现了babel-polyfill。

你可能感兴趣的:(babel,babel,背景说明)