2016-10-28 82 views
0

我有一個Node.JS項目,我正在努力,它的一個非常具體的功能需要讀取目錄中的所有JS文件,提取他們的類的註釋(可能的類名),然後將這些信息存儲在一個對象數組中,以便稍後轉換爲降價。Node.JS提取類的註釋

我的問題是什麼是提取這些組件,如類名和類的註釋的最佳方式是什麼?

我想過讀文件和解析語法,但爲什麼要重新發明輪子?如果有很好的工具來提取特定的評論,或者解析JS文件的聰明算法,我想聽聽他們。謝謝!

回答

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" 
} 
+0

絕對是一種解析類的好方法,但只要我只需要註釋就可能是矯枉過正。我會記住這一點,謝謝! –

1

有一個工具,它正是這樣做的!看看jsDoc。 https://github.com/jsdoc3/jsdoc

大廈HTML網頁的評論是因爲這樣做簡單:

npm i -g jsdoc 
jsdoc yourFile.js 

當然,這可以用咕嚕/一飲而盡組合和...

+0

jsdoc僅限於HTML網頁,還是可以生成降價? –

+0

它看起來像它! http://usejsdoc.org/plugins-markdown.html#enabling-the-markdown-plugin – danieldaugherty

+0

不錯!好吧,我必須記住這一點,以防我目前的策略無效。感謝您的領導! –