===========================================================================
Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。
babel
的配置文件一般是根目录下的.babelrc
,babel@7
目前已经支持babel.config.js
,不妨用babel.config.js
试试。
=======================================================================
babel
提供的基础能力是语法转换,或者叫语法糖转换。比如把箭头函数转为普通的function
,而对于ES6
新引入的全局对象是默认不做处理的,如Promise
, Map
, Set
, Reflect
, Proxy
等。对于这些全局对象和新的API
,需要用垫片polyfill
处理,core-js
有提供这些内容。
所以babel
做的事情主要是:
-
根据你的配置做语法糖解析,转换
-
根据你的配置塞入垫片
polyfill
如果不搞清楚这点,babel
的文档看起来会很吃力!
==========================================================================
babel
默认不做任何处理,需要借助插件来完成语法的解析,转换,输出。
插件分为语法插件Syntax Plugins
和转换插件Transform Plugins
。
语法插件
语法插件仅允许babel
解析语法,不做转换操作。我们主要关注的是转换插件。