解析器
一个用 Rust 编写的高性能 JavaScript / TypeScript 解析器,为 Oxc 项目中的其他工具提供支持。
功能
- 比 swc 解析器快 3 倍(基准测试)。
- 解析
.js(x)和.ts(x)。 - 通过了 Test262 的所有解析器测试,以及 Babel 和 TypeScript 中 99% 的测试。
- 直接返回 ESM 信息,无需
es-module-lexer。 - ✅ 可与 checker.ts 配合使用
安装
Node.js
- 使用 node 绑定 oxc-parser。
- 在 stackblitz 上试用。
Rust
使用总包 oxc,或分别使用 oxc_ast 和 oxc_parser 这两个 crate。
Rust 使用示例可在这里找到。
打印
在解析并转换后,你可以打印代码。
这里有一个使用 esrap 的直接示例 (将 parse 反过来!):
js
import { print } from "esrap";
import ts from "esrap/languages/ts";
import { parseSync } from "oxc-parser";
const { program } = parseSync("test.js", 'alert("hello oxc & esrap");');
const { code } = print(program, ts());
console.log(code); // alert("hello oxc & esrap");INFO
目前不会打印注释。这将通过 oxc-parser #13285 得到支持。
