从JSDoc注释导出结构化JS/JSON数据的标准方法
可用实现方案
完全可以,不用依赖JSDoc默认的HTML导出能力,有非常直接的方式拿到结构化的注释数据:
- 构建阶段解析(推荐,性能最好)
直接调用JSDoc官方的Node API,跳过HTML生成步骤,直接输出结构化的JS对象,只需要几行代码:
返回的const jsdoc = require('jsdoc-api'); // 传入要解析的目标JS文件路径,同步拿到解析结果 const parsedDocs = jsdoc.explainSync({ files: ['./path/to/your/code.js'] });parsedDocs是标准对象数组,每个对象对应一个JSDoc注释块,自动拆分好description(描述文本)、params(参数定义)、properties(属性定义)、returns(返回值定义)、examples(示例代码)等所有你写在JSDoc标签里的内容,你可以直接按标识符(变量名、属性名、方法名)做索引,存成JSON文件供前端UI调用,鼠标悬停时直接按对应key取内容渲染即可。 - 运行时轻量解析(适合需要在浏览器端实时解析的场景)
如果需要在前端直接解析加载的脚本注释,可以用comment-parser这个轻量库,没有多余依赖,只做JSDoc注释块的结构化提取,体积很小,不会引入JSDoc全量包的冗余代码,解析出来的结构和官方JSDoc输出基本一致,可以直接用。
注意:不要自己写正则匹配JSDoc注释,JSDoc支持多行描述、嵌套类型、可选参数、默认值、联合类型等复杂写法,正则很难覆盖所有边界情况,很容易出现解析错误,用成熟的解析库成本极低,稳定性好很多。
如果是做悬停提示类的交互,优先在构建阶段把解析好的注释数据处理成键值对映射,运行时直接查表拿数据,比实时解析源码性能高一个量级。
内容的提问来源于stack exchange,提问作者Damon
相关产品推荐
相关产品推荐

