梳理babel
Babel (opens new window)是JavaScript 编译器。它是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。
Babel的实现是基于编译原理,抽象成AST来生成目标代码。它在前端工程上起作用,对业务而言是无感知的。
Babel的作用:
- 语法转换,一般是高级语言特性的降级
- Polyfill特性的实现和接入
- 源码转换,比如JSX等
Babel成员:
- @babel/core:实现编译、转换的核心库
- @babel/cli:提供的命令行工具
- @babel/preset-env:一组babel插件和options配置的可共享模块
- @babel/polyfill:包含regenerator runtime和core-js两个包
- @babel/plugin-transform-runtime:通过重复使用babel注入的helper函数,减小代码体积。需要配合@babel/runtime使用
- @babel/plugin:babel插件集合
- @babel/template:将字符串模板转换为AST
- ...
上次更新: 2022/06/13, 15:54:07