Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript babel插件语法在哪里定义?_Javascript_Babeljs_Transpiler_Acorn - Fatal编程技术网

Javascript babel插件语法在哪里定义?

Javascript babel插件语法在哪里定义?,javascript,babeljs,transpiler,acorn,Javascript,Babeljs,Transpiler,Acorn,我正在构建一个babel插件,可以在babel repo中找到许多已经编写的插件示例 我找不到编写这样一个插件的权威API文档,尤其是我可以在生成的AST上执行的操作 我查过了 (这也是ASTExplorer自述文件中链接的内容 谷歌搜索“巴别塔转换API” 以及其中的链接 仅列出几个地方。其中没有一个地方定义了我在现有插件中经常调用的无处不在的.get方法,更不用说我可以在路径、节点、作用域或绑定上调用的其他函数了 Babel 7转换是否有明确的文档来源?如果有,它在哪里?我不是“Ba

我正在构建一个babel插件,可以在babel repo中找到许多已经编写的插件示例

我找不到编写这样一个插件的权威API文档,尤其是我可以在生成的AST上执行的操作

我查过了

  • (这也是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文档并对公众隐瞒它。