我试图让JSDOC(3)正确记录我的NodeJS模块。虽然简单的模块工作,但我找不到方法来记录一个稍微复杂的模块。jsdoc没有正确记录nodejs模块
我的NodeJS模块具有以下结构:
/** @module MyModule */
(function() {
function functionToExportOne {...}
function functionToExportTwo {...}
/**
* @module MyModule.ClassToExportOne
* @constructor
*/
function ClassToExportOne {
this.classMethodOne=function() { ... }
this.classMethodTwo=function() { ... }
}
/** @constructor */
function ClassToExportTwo {
function classMethodOne() { ... }
function classMethodTwo() { ... }
return /** @lends {ClassToExportTwo.prototype} */ {
methodOne:classMethodOne,
methodTwo:classMethodTwo
}
}
/** @exports MyModule */ <--- late addition, see comments
module.exports={
functionOne:functionToExportOne,
functionTwo:functionToExportTwo,
classOne:ClassToExportOne,
classTwo:ClassToExportTwo
}
})()
嗯,正如你看到的,模块出口这两种方法和类的构造函数。没什么很奇怪的。
问题是,JSDOC
- 总是无法识别内部类,
- 错误第一内部类的方法如(外)模块的方法,
- 总是跳过真实导出模块方法。
- 最近我一直是在
ClassToExportOne
,当我使用@module MyModule.<className>
随后@constructor
(按照这个顺序):在这种情况下,类是公认,但只有构造函数记录,其方法是记录为归属于母公司模块
我已经试过数千种不同的组合没有成功:定义与this.method=function() {...}
内部类方法
- (如德在
ClassToExportOne
picted)中或在每个类 - 限定module.exports VS exports.xxxx
- 宣告内部类
@private
的报头中使用@module MyModule.ClassToExportOne
返回使用与@lends {ClassToExportTwo.prototype}
方法的对象(如在ClassToExportTwo
描绘) - ,宣告一切
@private
但出口 - 移动
@module
声明之前的第一个出口(总乱七八糟的话,一些东西被晋升为“全球性”,即使它是最主要的闭包!!) - 如果我添加
@exports <modulename>
只是在出口申报之前,方法被记录(与类方法混合)
我已经尝试了所有建议http://usejsdoc.org/howto-commonjs-modules.html没有成功。
我敢肯定我错过了什么,但找不到什么。
这正是我所需要的。谢谢。当父类位于自己的模块中时,我无法让JSDOC正确地为我的子类生成文档。 –