2016-10-28 74 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

不错!好吧,我必须记住这一点,以防我目前的策略无效。感谢您的领导! –