【问题标题】:ternJS - Generate JSON type definition fileternJS - 生成 JSON 类型定义文件
【发布时间】:2013-09-29 12:02:56
【问题描述】:

ternJS 有几个。 JSON 文件 defs 包含库的定义。有人可以向我解释如何最好地为我的 javascript 库/或仅定义对象生成我自己的吗?

我看不出这没有通用的程序?

【问题讨论】:

    标签: javascript json tern


    【解决方案1】:

    Tern 中包含了一个工具。请参阅condensehttp://ternjs.net/doc/manual.html#utils。它在您的文件上运行 Tern 并尝试输出它找到的类型。它远非完美无缺,但对于简单的程序来说效果很好。对于具有复杂结构或界面的文件,您通常需要手动编写定义。

    【讨论】:

    • 非常感谢 Marijn,你拯救了我的一天;) :D :)!
    【解决方案2】:

    我想了三种方法来解决你的问题:

    使用抽象语法树解析器和访问者

    解决问题的一种方法是使用抽象语法树解析器visitor来自动完成扫描代码并记录它的任务。 p>

    这里的资源会有所帮助:

    -http://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/ -What is JavaScript AST, how to play with it?

    您通常使用解析器检索一棵树,然后使用访问者访问所有节点并在其中完成您的工作。

    您实际上将拥有一个代表特定库的树,然后您必须编写代码以将其存储为您链接到的 def 格式。

    获取文档生成器并进行修改

    另一个想法是下载文档生成器的源代码,例如https://github.com/yui/yuidoc/

    通过修改样式/输出格式,您可以生成适当的 json 格式的“文档”。

    将现有文档(HTML 文档)转换为 JSON

    您可以制作一个采用标准文档格式的解析器(我确信 Javadoc 是一个用于 java 的,应该有一个用于 javascript),并编写一个转换器来提取相关信息并存储在 JSON 定义中。

    【讨论】:

    • 我至少数了一下,他们没有手动编写defs xD hehe
    • 也许可以问他们? :) ...我注意到它们还包含指向定义中的文档的 URL,这些 URL 还指出它们已废弃/抓取或手动输入数据。我还怀疑他们是否可能通过浏览文档生成了定义。我已经用另外 2 个选项更新了我的答案。
    • 谢谢,从这里学到了很多:)!谢谢你。 +1。但我认为按照 tern 应该的方式进行操作 :)
    猜你喜欢
    • 2019-02-18
    • 2022-01-21
    • 2023-03-12
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多