Javascript babel插件语法在哪里定义?
我正在构建一个babel插件,可以在babel repo中找到许多已经编写的插件示例 我找不到编写这样一个插件的权威API文档,尤其是我可以在生成的AST上执行的操作 我查过了Javascript babel插件语法在哪里定义?,javascript,babeljs,transpiler,acorn,Javascript,Babeljs,Transpiler,Acorn,我正在构建一个babel插件,可以在babel repo中找到许多已经编写的插件示例 我找不到编写这样一个插件的权威API文档,尤其是我可以在生成的AST上执行的操作 我查过了 (这也是ASTExplorer自述文件中链接的内容 谷歌搜索“巴别塔转换API” 以及其中的链接 仅列出几个地方。其中没有一个地方定义了我在现有插件中经常调用的无处不在的.get方法,更不用说我可以在路径、节点、作用域或绑定上调用的其他函数了 Babel 7转换是否有明确的文档来源?如果有,它在哪里?我不是“Ba
- (这也是ASTExplorer自述文件中链接的内容
- 谷歌搜索“巴别塔转换API”
- 以及其中的链接
.get
方法,更不用说我可以在路径、节点、作用域或绑定上调用的其他函数了
Babel 7转换是否有明确的文档来源?如果有,它在哪里?我不是“Babel”专家,但几个小时后,我就发现了这一点。没有关于API的文档,只有实际的源代码
作为一个例子,我决定使用这个插件,名为。当我们继续前进时,打开这些链接
第一步是。在上面插件的源代码中,我看到了一些,可以很容易地在规范中找到。根据规范,这个类型有几个属性(例如被调用方和参数)。我也可以在源代码中看到它们的明确用法。在这一点上没有什么特别之处
但你可能会问:好吧,但是方法呢
例如,让我们看一看ArrayExpression
。规范中没有方法。但是在源代码中,有很多方法,比如.replaceWith()
。这到底是从哪里来的?我发现了这个。很旧,是的,但对我来说仍然很有用。尝试在这个页面上找到replaceWith
,你会看到一些提示,比如babel core.traverse.NodePath.prototype.replaceWith
好的,下一步是在babel/packages/babel traverse
中打开并查找有关replaceWith的内容。这将引导我们找到。在这里,您可以看到其他相关方法
作为练习,您可以打开《巴别塔手册》并尝试查找其他内容。getPrevSibling
例如,再次打开GitHub,打开搜索,查看结果,和。或,或,等等
此方法不是最简单的方法,但如果没有适当的文档,这就是我们必须处理的问题。不幸的是。您能否进一步说明“没有关于API的文档…”?这是巴贝尔团队的权威声明还是你迄今为止发现的声明?好的观点。我发现与你的问题有关。回答“假定方法”的核心维护人员说,“如果你问的是API方法,那么是的,我们没有。”.此外,我找不到任何像你一样合适的文档,不是因为他们对我们隐瞒,而是因为它不存在。否则,我看不出有什么好的理由拥有API文档并对公众隐瞒它。