程序员表示:我们太像了!
发布时间:2021-02-12 12:45:41 所属栏目:外闻 来源:互联网
导读:插件的执行思路: 第一步,执行该插件,获取到包含visitor对象; 第二步,ATS遍历节点,检测nodePath的type === ArrowFunctionExpression,寻找到vistor对象的中key为 ArrowFunctionExpression的函数; 第三步,将nodePath传入该函数进行调用(AST在这步被修
|
插件的执行思路:
单个插件的执行思路很明确了,那么在ATS遍历过程,怎么做到多个插件一起工作呢? Babel在转换源码过程中,插件化架构的工作流程是这样的:
插件是一个函数,返回值是一个包含visitor的对象。插件定义的部分概念说明:
(笔者认为pluginAPI还应包括nodePath,因为,每个节点实例除了语法和词法描述,还包含需求语法间的转换方法)
插件示例 从三要素来总结:
2.2 Babel的插件化架构 Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。在代码转换的过程中会涉及许多特性和语法的转换,而且ECMAScript的提案总是不断地更新。如何组织大量(不断增加)的转换规则呢?我们来看看 Babel的工作原理。 Babel转换源码,分为三个步骤:
(编辑:盐城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


