官网: https://babeljs.io/
民间官网: https://www.babeljs.cn

babel简介

babel一次来源于希伯来语,直译为巴别塔

2020-02-07-10-12-01.png
巴别塔象征着统一的国度,同一的语言,

而今的js世界缺少一座巴别塔,不同版本的浏览器能识别的es标准并不相同,就导致了开发者对不同的浏览器需要使用不同的语言,和古巴比伦一样,前端开发也面临着这样的困境

babel的出现,就是解决这样的问题的,它是一个编译器,可以把不同标准的标准书写的语言,便以为同一的,能被各种浏览器识别的语言

2020-02-07-10-25-56.png
由于语言的转换灵活多样,babel的做法和postcss,webpack差不多,它本身提供一些分析功能,真正的转换需要依托插件来完成

2020-02-07-10-27-30.png

babel的安装

babel可以和构建工具联合使用,也可以独立使用

如果要独立使用babel,需要安装下面两个库

  • @babel/core: babel的核心库,提供了编译所需的api
  • @babel/cli: 提供一个命令行工具,调用核心库的api来完成
  1. npm i -D @babel/core @babel/cli

babel的使用,

@babel/cli的使用极其简单

它提供了一个命令

  1. # 按文件编译
  2. babel 需要编译的文件 -o 编译结果文件
  3. # 按目录编译
  4. babel 需要编译的整个目录 -d 编译结果放置目录

babel的配置

可以看到,babel本身没有做任何事情,真正的编译要依托于babel插件和babel的预设

babel的预设和postcss一样,是个插件的集合体,用于解决一系列常见的兼容问题

如何告诉babel需要使用哪些插件或预设呢?需要通过一个配置文件.babelrc

  1. {
  2. "presets": [],
  3. "plugins": []
  4. }