Babel logo

Babel ,又名 Babel.js。 是一个用于 web 开发,且自由开源的 JavaScript 编译器、转译器。

Babel 使软件开发者能够以偏好的编程语言或风格来写作源代码,并将其利用 Babel 翻译成 JavaScript(现今在浏览器最常用的编程语言)。

Babel 是一个常用来使用最新的 JavaScript 语言特性的工具。身为一个转译器、或编译器,开发者可以使用 ECMAScript 6 以上的功能,并将其转换成旧版本等效的 JavaScript 让浏览器能够去解读。

Babel 的核心版本目前每个月有超过 500 万次下载。

Babel plugin 是用来在 web 开发上提供特定的转换机制。举例来说,使用 React.js 的开发者,可以使用 Babel 来转换 JSX 语法成 JavaScript,使用 Babel preset react。

Babel信息

原作者:Babel team 

开发者:contributors 

版本:稳定版本 6.26.3(2018年4月27日,21个月前)

为什么选择BabelJS?

JavaScript是浏览器理解的语言.我们使用不同的浏览器运行我们的应用程序 :  Chrome,Firefox,Internet Explorer,Microsoft Edge,Opera,UC浏览器等.ECMA Script是JavaScript语言规范; ECMA Script 2015 ES5是稳定版本,适用于所有新旧浏览器.

在ES5之后,我们有ES6,ES7和ES8. ES6发布了许多新功能,并非所有浏览器都完全支持.这同样适用于ES7,ES8和ESNext(下一版ECMA脚本).目前尚不确定所有浏览器何时可以与所有发布的ES版本兼容.

我们计划使用ES6或ES7或ES8功能来编写代码由于缺乏对新变化的支持,在一些旧浏览器中往往会中断.因此,如果我们想在代码中使用ECMA Script的新功能并希望在所有可用的浏览器上运行它,我们需要一个能够在ES5中编译最终代码的工具.

Babel 做同样的事情,它被称为转换器,它转换了我们想要的ECMA Script版本中的代码.它具有预设和插件等功能,可配置我们需要转换代码的ECMA版本.使用Babel,开发人员可以使用JavaScript中的新功能编写代码.用户可以使用Babel获取代码;以后可以在任何浏览器中使用这些代码而不会出现任何问题.

下表列出了ES6,ES7和ES8中可用的功能 : 

FeaturesECMA Script version
Let + ConstES6
Arrow FunctionsES6
ClassesES6
PromisesES6
GeneratorsES6
IteratorsES6
ModulesES6
DestructuringES6
Template LiteralsES6
Enhanced ObjectES6
Default, Rest & Spread PropertiesES6
Async - AwaitES7
Exponentiation OperatorES7
Array.prototype.includes()ES7
String PaddingES8

Babel官方