我有一個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'很簡單,完成工作! –