在线文档教程

babylon

babylon

Babylon 是 Babel 中使用的 JavaScript 解析器。

  • 默认启用最新的 ECMAScript 版本(ES2017)。

鸣谢

该项目中使用了大量的 acornacorn-jsx 语法,感谢 @RReverser@marijnh 出色的工作。

API

babylon.parse(code, [options])

babylon.parseExpression(code, [options])

parse() 将提供的 code 解析为完整的 ECMAScript 程序,而 parseExpression() 试图解析表达式,并会考虑性能问题。如果有疑问,请使用 .parse()

选项

  • allowImportExportEverywhere: 默认情况下,importexport 声明只能出现在代码头部。设置该选项为 true 时,则允许他们在代码的任何地方使用。

输出

Babylon 根据 Babel AST 的格式 生成 AST 。它基于 ESTree 规范,具有以下差别:

现在可以使用 estree 插件来取消掉这些差别

JSX 的 AST 代码基于 Facebook JSX AST 并额外添加了一个节点类型:

  • JSXText

Semver

Babylon 在大多数情况下遵循 semver。唯一需要注意的是,某些规范遵从性错误的修复可能会在下一个补丁版本中发布。

例如:我们推送了修复早期错误的代码,就像#107 - 多个文件默认导出多个。这被视为一个错误进行修复,即时它会导致构建失败。

案例

require("babylon").parse("code", { // 以严格模式解析并允许模块声明 sourceType: "module", plugins: [ // 启用 jsx 和 flow 语法 "jsx", "flow" ] }

插件

  • estree