我有一个Node.JS项目,我正在努力,它的一个非常具体的功能需要读取目录中的所有JS文件,提取他们的类的注释(可能的类名),然后将这些信息存储在一个对象数组中,以便稍后转换为降价。Node.JS提取类的注释
我的问题是什么是提取这些组件,如类名和类的注释的最佳方式是什么?
我想过读文件和解析语法,但为什么要重新发明轮子?如果有很好的工具来提取特定的评论,或者解析JS文件的聪明算法,我想听听他们。谢谢!
我有一个Node.JS项目,我正在努力,它的一个非常具体的功能需要读取目录中的所有JS文件,提取他们的类的注释(可能的类名),然后将这些信息存储在一个对象数组中,以便稍后转换为降价。Node.JS提取类的注释
我的问题是什么是提取这些组件,如类名和类的注释的最佳方式是什么?
我想过读文件和解析语法,但为什么要重新发明轮子?如果有很好的工具来提取特定的评论,或者解析JS文件的聪明算法,我想听听他们。谢谢!
看一看成你的代码转换成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"
}
绝对是一种解析类的好方法,但只要我只需要注释就可能是矫枉过正。我会记住这一点,谢谢! –
有一个工具,它正是这样做的!看看jsDoc。 https://github.com/jsdoc3/jsdoc
大厦HTML网页的评论是因为这样做简单:
npm i -g jsdoc
jsdoc yourFile.js
当然,这可以用咕噜/一饮而尽组合和...
jsdoc仅限于HTML网页,还是可以生成降价? –
它看起来像它! http://usejsdoc.org/plugins-markdown.html#enabling-the-markdown-plugin – danieldaugherty
不错!好吧,我必须记住这一点,以防我目前的策略无效。感谢您的领导! –
感谢您的建议。看起来像'js-comments'很简单,完成工作! –