Node.JS提取类注释

时间:2016-10-28 13:42:24

标签: javascript node.js comments

我有一个我正在研究的Node.JS项目,它的一个非常具体的功能是需要读取目录中的所有JS文件,提取它们的类注释(也可能是类名),然后存储它对象数组中的信息,以便稍后转换为markdown。

我的问题是提取这些组件的最佳方式是什么,例如类名和类注释?

我考虑过阅读文件并解析语法,但为什么要重新发明轮子呢?如果有很好的工具来提取特定的注释,或者解析JS文件的聪明算法,我想听听它们。谢谢!

3 个答案:

答案 0 :(得分:1)

有一个工具正是这样做的!看看jsDoc。 https://github.com/jsdoc3/jsdoc

根据评论构建HTML网页就像执行以下操作一样简单:

npm i -g jsdoc
jsdoc yourFile.js

当然,这可以与grunt / gulp结合......

答案 1 :(得分:0)

答案 2 :(得分:0)

查看将您的代码转换为abstract syntax tree 的解析器。

例如,Esprima可以帮助您解析ES6 JavaScript并提取标识符和注释。

看看this live demo。对于以下类,将生成以下AST:

/**
 *
 * This is a test class
 *
 */
class Foo {
    bar() {
        console.log('foobar');
    }
}
{
    "type": "Program",
    "body": [
        {
            "type": "ClassDeclaration",
            "id": {
                "type": "Identifier",
                "name": "Foo"
            },
            "superClass": null,
            "body": {
                        ...
                    }
                ]
            },
            "leadingComments": [
                {
                    "type": "Block",
                    "value": "*\n *\n * This is a test class\n *\n ",
                    "range": [
                        0,
                        37
                    ]
                }
            ]
        }
    ],
    "sourceType": "script"
}