2014-03-13 117 views

回答

7

随着3.2.2版本,jsdoc很容易被绊倒的模块,该解决方案是使用module:模块名来指定实体您记录所在:

/** 
* Description of module, defines module for whole file 
* 
* @module constructors 
*/ 

var app = (/** @lends module:constructors */ function() { 
    /** 
    * Description of function test 
    */ 
    function test() { 
     return ''; 
    } 

    return { 
     test: test 
    } 
}()); 
+0

它的工作原理与3.2.2版本,但与最新版本,它不工作,没有在文档中提供的功能测试。 JSDoc的语法是否改变了? – user3414859

+1

请勿使用3.3.0。这是阿尔法和马车。我还不知道3.3.0版本是否引入了语法变更。 – Louis

+0

感谢您的帮助! – user3414859

0

对我来说使用JSDoc 3.4.0帮助这个解决方案:

/** 
* @module array-cop 
*/ 

/** 
* @function 
* @name Anonymous self-invoked function 
* @description Call main module 
* @param {Object} this Window for the browser 
*/ 

(function(_) { 

    var array_ = { 
     /** 
     * @function 
     * @name check 
     * @description Method for checking type of the source data. 
     * @param {Array} arr Source data. 
     * @returns {Boolean} Returns true if Array.isArray, otherwise throw error. 
     * @throws Will throw an error "Not an array" if the argument isn't array. 
     */ 
     check: function(arr) { 
      return Array.isArray(arr) || (function() { 
       throw new Error("Not an array!"); 
      }()); 
     }, 

// Some code stuff 

    /** 
    * npm/<script> compatibility 
    */ 

    if (typeof module !== "undefined" && module.exports) { 
     module.exports = array_; 
    } else { 
     _.array_ = array_; 
    } 
}(this)); 

,也是我创建了一口任务生成JSDoc文档:

var gulp = require('gulp'), 
    child_exec = require('child_process').exec; 

// Task for generationg JSDoc 
gulp.task('docs', function(done) { 

    var settings = { 
     docGenerator: "./node_modules/jsdoc/jsdoc.js", 
     srcFile: "./src/array-cop.js", 
     jsDocConfPath: "./jsdoc.json", 
     docsOutputPath: "./docs" 
    } 

    child_exec('node ' 
       + settings.docGenerator 
       + ' ' + settings.srcFile 
       + ' -c ' + settings.jsDocConfPath 
       + ' -d ' + settings.docsOutputPath, undefined, done); 
}); 

运行gulp docs 文件后,将被放置到./docs文件夹

+0

这不是你应该如何使用@name标签:http://usejsdoc.org/tags-name.html – Isochronous