2014-03-13 145 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