我不是“通天塔”专家,但几个小时后,我发现了这一点。没有关于 API 的文档,而不是实际的源代码。
例如,我决定使用这个名为babel-plugin-transform-spread 的插件。随着我们的深入,打开这些链接。
第一站是AST Spec。在上面插件的源代码中,我看到了一些CallExpression
,很容易在规范中找到。根据规范,这个类型有几个属性(例如被调用者和参数)。我也可以在源代码中看到它们的清晰用法。在这一点上没有什么特别的。
但是您可能想问:好的,但是方法呢?
让我们看一个ArrayExpression
例子。规范中没有方法。但是在源代码中,有很多,比如.replaceWith()
. 这到底是从哪里来的?我找到了这个API 文档。很老,是的,但仍然有帮助 IMO。尝试replaceWith
在此页面上查找,您会看到一些提示,例如babel-core.traverse.NodePath.prototype.replaceWith
。
好了,接下来就是打开babel 的 GitHub页面,在babel/packages/babel-traverse
. 这将我们引向这条线。在这里你可以看到其他相关的方法。
作为练习,您可以打开babel 手册并尝试查找其他内容。getPrevSibling
例如。再次,打开 GitHub,打开搜索,查看结果,然后我们开始。或者findParent
,或者insertAfter
,等等。
这种方法不是最简单的方法,但是如果没有适当的文档,这是我们必须处理的。很遗憾。