跳到主要内容

oxc-parser

2024年11月10日
柏拉文
越努力,越幸运

一、parseSync()


1.1 认识

parseSync() 同步解析 JavaScript 源代码,返回 AST(抽象语法树)。

1.2 语法

const oxcParser = require("oxc-parser");

const { parseSync } = oxcParser;

const parse = (sourceCode) => {
try {
const result = parseSync(sourceCode);
return result;
} catch (error) {
console.error("Error parsing source code:", error);
return "";
}
};

function main() {
const ast = parse(
`var a = 1; var b = 2; var c = ()=> { var d = 3; return d;};`
);

console.log(JSON.stringify(ast, null, 2));
}

main();

二、parseAsync()


2.1 认识

parseAsync() 异步解析 JavaScript 源代码,返回一个包含 ASTPromise

2.2 语法

const oxcParser = require("oxc-parser");

const { parseAsync } = oxcParser;

const parse = async (sourceCode) => {
try {
const result = await parseAsync(sourceCode);
return result;
} catch (error) {
console.error("Error parsing source code:", error);
return "";
}
};

async function main() {
const ast = await parse(
`var a = 1; var b = 2; var c = ()=> { var d = 3; return d;};`
);

console.log(JSON.stringify(ast, null, 2));
}

main();

三、moduleLexerSync()


moduleLexerSync() 同步解析 JavaScript 模块,返回模块的相关信息(如导入和导出)。

四、moduleLexerAsync()


moduleLexerAsync() 异步解析 JavaScript 模块,返回一个包含模块相关信息的 Promise

五、parseWithoutReturn()


parseWithoutReturn() 解析 JavaScript 源代码,但不返回解析结果。通常用于只需要解析过程的场景。