babel-parser

Babylon 是 Babel 的解析器。最初是 Acorn 的一份 fork,它非常快,易于使用,并且针对非标准特性(以及那些未来的标准特性)设计了一个基于插件的架构。

目前 babylon 项目已经作为 @babel/parser 存在

安装:

yarn add babylon
# or
yarn add @babel/parser

使用:

import * as babylon from "babylon";
// 或 import * as parser from "@babel/parser"; 之后使用 parser.parse...
const code = `function square(n) {
  return n * n;
}`;
babylon.parse(code);
// Node {
//   type: "File",
//   start: 0,
//   end: 38,
//   loc: SourceLocation {...},
//   program: Node {...},
//   comments: [],
//   tokens: [...]
// }

我们还能传递选项给 parse():

babylon.parse(code, {
  sourceType: "module", // default: "script"
  plugins: ["jsx"] // default: []
});

sourceType 可以是 "module" 或者 "script",它表示 Babylon 应该用哪种模式来解析。 "module" 将会在严格模式下解析并且允许模块定义,"script" 则不会。

提示

sourceType 的默认值是 "script" 并且在发现 importexport 时产生错误。 使用 scourceType: "module" 来避免这些错误。

因为 Babylon 使用了基于插件的架构,因此 plugins 选项可以开启内置插件。 注意 Babylon 尚未对外部插件开放此 API 接口,不过未来会开放的。

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress