banner
banner
banner
NEWS LETTER

Babel

Scroll down

Babel

  • 一个Javascript 编译器
  • 一个工具链,运行在当前和旧的浏览器或环境中,功能是将ES2015+转换为Javascript 向后兼容的代码
  • 本质:操作『AST(抽象语法树)』来完成代码的转译

编译过程

  1. 『解析(Parse)』: 通过词法分析和语法分析将源码转为AST。

    • 词法分析: 把字符流(Char Stream)源码转为令牌流(Token Stream)
    • 语法分析:把令牌流转为AST(源代码的抽象语法结构的树状表示)
  2. 『转换(Transform)』:将高版本的AST转换为支持低版本语法的AST,并优化

  3. 『生成(Generate)』: 将AST转换为字符串形式的低版本代码,并创建Source Map映射

优点

  • 可压缩 – 提供assumptions选项

删除类型注释

  • 可以安装 Flow preset 和 Typescript preset 来做类型检查
  • flow preset – js的静态类型检查器
    1
    2
    安装:npm install --save-dev @babel/preset-flow
    使用:const square = (n: number) : number => n * n
  • typescript preset – ts的静态类型检查器
    1
    2
    安装:npm install --save-dev @babel/preset-typescript
    使用:const Greeter(greeting: string) { this.greeting = greeting }
其他文章
cover
ESlint
  • 24/11/01
  • 17:45
  • JavaScript
cover
配置文件
  • 24/11/01
  • 16:52
  • 前端工程化工具
目录导航 置顶
  1. 1. Babel
    1. 1.1. 编译过程
    2. 1.2. 优点
      1. 1.2.1. 删除类型注释
请输入关键词进行搜索