加载中...
Babel 是 JavaScript 编译器,将 ES2015+ 语法转译为向后兼容的 ES5 代码,让开发者提前使用新语法特性,并通过插件体系支持 TypeScript、JSX、装饰器等非标准语法转换。

| 原名 | 6to5(2014 年改名 Babel) |
| 当前主版本 | Babel 7(2018) |
| 核心包 | @babel/core / @babel/parser / @babel/preset-env |
Babel 的工作分三阶段:@babel/parser(原 Babylon)将源码解析为 AST(抽象语法树);Transform 插件遍历 AST 节点,做增删改操作;@babel/generator 将修改后的 AST 输出为新的 JS 代码,同时生成 Source Map。开发者可以插入自定义插件,在任意 AST 节点位置注入逻辑,这让 Babel 成为元编程、代码混淆、自动化重构的基础设施。[1]
手动列出要转译的语法插件很繁琐,@babel/preset-env 根据目标浏览器列表(通过 Browserslist 配置)自动选择所需插件,极大简化配置。但要注意:Babel 只转换语法(如箭头函数、解构),不会自动填充运行时 API(如 Promise、Array.prototype.flat),后者需要引入 core-js polyfill。Babel 7(2018 年发布)将所有包改用 @babel/ 命名空间,并支持 monorepo 管理。随着现代浏览器覆盖率提升,一些项目开始跳过 Babel、直接使用 esbuild/swc 等原生速度更快的工具链。

| 原名 | 6to5(2014 年改名 Babel) |
| 当前主版本 | Babel 7(2018) |
| 核心包 | @babel/core / @babel/parser / @babel/preset-env |
登录 后参与讨论
暂无讨论,来发表第一条评论吧