loggingNode.js项目
我目前正在使用JSDoc工具包来logging我的代码,但是它不太适合 – 也就是说,它似乎很难正确描述名称空间。 假设你的每个文件都有两个简单的类:
lib/database/foo.js
:
/** @class */ function Foo(...) {...} /** @function ... */ Foo.prototype.init(..., cb) { return cb(null, ...); }; module.exports = foo;
然后inheritancelib/database/bar.js
:
var Foo = require('./foo'); /** * @class * @augments Foo */ function Bar(....) {...} util.inherits(Bar, Foo); Bar.prototype.moreInit(..., cb) { return cb(null, ...); };
在生成的文档中,这只是作为Foo
和Bar
输出,没有领先的database
(或lib.database
),当您没有全局范围内的所有内容时,这是非常必要的。
我已经尝试过抛出@namespace database
和@name database.Foo
,但它并不好。
任何想法使JSDoc输出更合适的东西,或者一些完全不同的工具,更好地使用Node.js? (我简单地看了一下自然文档,JSDuck,还有很多看起来已经过时了的其他东西…)
JSDoc是JavaDoc的一个端口。 所以基本上文档假定古典的OOP,这不适合于JavaScript。
我个人build议使用docco来注释你的源代码。 它的例子可以find下划线 , 骨干 , docco 。
docco是一个很好的select是groc
至于实际的API文档,我个人发现从评论中自动生成的文档不适用于JavaScript,并build议您手写您的API文档。
示例将是下划线API , Express API , nodejs API , socket.io文档
类似的StackOverFlow问题
- 生成Javascript文档
YUIDoc是一个Node.js应用程序,它使用类似于Javadoc和Doxygen等工具的语法从源代码中的注释生成API文档。 YUIDoc提供:
- 实时预览。 YUIDoc包含一个独立的文档服务器,使您在写作时预览文档变得微不足道。
- 现代标记。 YUIDoc生成的文档是一个有吸引力的function性的Web应用程序,具有真正的URL和适合蜘蛛和其他无法运行JavaScript的代理的优雅回退。
- 广泛的语言支持。 YUIDoc最初是为YUI项目devise的,但它不受任何特定的库或编程语言束缚。 您可以使用任何支持/ * * /注释块的语言。
注意: Dox不再输出HTML,而是描述parsing代码的一块JSON。 这意味着下面的代码不再工作得非常好…
我们结束了现在使用Dox 。 这很像docco ,Raynos提到,但把它全部放在一个HTML文件中输出。
我们把这个入侵到我们的makefile
:
JS_FILES := $(shell find lib/ -type f -name \*.js | grep -v 3rdparty) #Add node_modules/*/bin/ to path: #Ugly 'subst' hack: Check the Make Manual section 8.1 - Function Call Syntax NPM_BINS:=$(subst bin node,bin:node,$(shell find node_modules/ -name bin -type d)) ifneq ($(NPM_BINS),) PATH:=${NPM_BINS}:${PATH} endif .PHONY: doc lint test doc: doc/index.html doc/index.html: $(JS_FILES) @mkdir -p doc dox --title "Project Name" $^ > $@
这不是有史以来最漂亮或最有效的文档(而且dox有很多小错误) – 但是我发现它工作得相当好,至less对于小项目来说。
对不起,一年前我没有在StackExchange上,但是我相信你原来的问题的答案是使用@memberOf标签:
/** @namespace */ database = {}; /** * @class * @memberOf database */ function Foo() { ... };
http://code.google.com/p/jsdoc-toolkit/wiki/TagMemberOf
当你问你的问题时,这个标签可能存在也可能不存在。
find一个非常好的解决scheme:doxx。
它使用上面提到的dox,然后把它转换成漂亮的HTML。 有一个很好的用法,对我很好。
我和JSDoc一起工作非常高效,除了容易,但是当项目有很多的替代库时,开发起来相当复杂。 我发现Groc是一个基于Docco的非常好的工具,可以和其他语言Docco
工作:Python,Ruby,C ++等等。
另外Groc
在GitHub中使用Markdown,当使用git作为版本控制时,效率会更高。 进一步帮助组装页面在GitHub上发布。
你也可以通过grunt-groc
例子使用任务pipe理器GruntJS
:
安装包:
npm install grunt-groc --save-dev
在你的任务文件中configuration:
grunt.loadNpmTasks('grunt-groc');
和configuration任务:
// Project configuration. grunt.initConfig({ groc: { coffeescript: [ "coffee/*.coffee", "README.md" ], options: { "out": "doc/" } }
});
运行任务:
grunt.registerTask('doc', ['groc'])