Babel babylon怎样运用
发布时间:2023-04-12 08:56:08 所属栏目:教程 来源:
导读:Babylon 是 Babel 中使用的 JavaScript 解析器。
支持 JSX, Flow, Typescript 语法。
支持实验阶段的语法提案(支持至少达到 stage-0 阶段的 PR)。
API
babylon.parse(code, [options])
babylon.parseEx
支持 JSX, Flow, Typescript 语法。
支持实验阶段的语法提案(支持至少达到 stage-0 阶段的 PR)。
API
babylon.parse(code, [options])
babylon.parseEx
Babylon 是 Babel 中使用的 JavaScript 解析器。 支持 JSX, Flow, Typescript 语法。 支持实验阶段的语法提案(支持至少达到 stage-0 阶段的 PR)。 API babylon.parse(code, [options]) babylon.parseExpression(code, [options]) parse() 将提供的 code 解析为完整的 ECMAScript 程序,而 parseExpression() 试图解析表达式,并会考虑性能问题。 选项 allowImportExportEverywhere: 默认情况下,import 和 export 声明只能出现在代码头部。设置该选项为 true 时,则允许他们在代码的任何地方使用。 allowReturnOutsidefunction: 默认情况下,顶级的 return 语句会引发错误。设置该选项为 true 时,则会接受错误的代码。 allowSuperOutsideMethod: Todo sourceType: 表明代码应该解析的模式。可以是 "script","module" 或者 "unambiguous" 中任意一个。默认为 "script"。"unambiguous" 将使得 Babylon 尝试根据 ES6 的 import 或者 export 声明来进行推测。具有 ES6 import 和 export 的文件被认为是 "module",否则被认为是 "script"。 sourceFilename: 将输出的 AST 节点与其源文件名相关联。多用于多个输入文件的 AST 生成代码和 source map 时。 startLine: 默认情况下,解析的第一行代码被视为第 1 行。你可以提供一个行号来作为起始。多用于与其他源工具集成。 plugins: 数组,包含要启用的插件。 strictMode: Todo ranges: 为每个节点添加 ranges 属性: [node.start, node.end] tokens: 将所有解析的 token 添加到 File 节点的上的 tokens 属性中。 输出 Babylon 根据 Babel AST 的格式 生成 AST 。它基于 ESTree 规范,具有以下差别: 现在可以使用 estree 插件来取消掉这些差别 文字符号会被替换为字符串,数字,布尔,Null,正则表达式 属性符号会被替换为 ObjectProperty 和 ObjectMethod 方法定义会被替换为类方法 指令和语法块的 directives 字段中包含额外的指令和指令字符集 函数表达式中的类方法,对象属性和对象方法值属性的属性被强制/带入主方法节点。 JSX 的 AST 代码基于 Facebook JSX AST 并额外添加了一个节点类型: JSXText Semver Babylon 在大多数情况下遵循 semver。唯一需要注意的是,某些规范遵从性错误的修复可能会在下一个补丁版本中发布。 例如:我们推送了修复早期错误的代码,就像#107 - 多个文件默认导出多个。这被视为一个错误进行修复,即时它会导致构建失败。 案例 require("babylon").parse("code", { // 以严格模式解析并允许模块声明 sourceType: "module", plugins: [ // 启用 jsx 和 flow 语法 "jsx", "flow" ]}); (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |