代码之家  ›  专栏  ›  技术社区  ›  FabianTe

JSDoc:条件忽略是否可能?

  •  1
  • FabianTe  · 技术社区  · 7 年前

    有没有办法有条件地忽略一些文档化符号? 我想这样做(伪代码):

    /**
    * @ignore if dev
    */
    var a = 42;
    
    /**
    * @ignore if prod
    */
    var b = 24;
    

    在本例中,我希望让我的JSDoc生成器只记录 var a 如果我将生成器配置为 dev 反之亦然 var b .

    这可能吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   nuno    6 年前

    您可以实现自己的 jsdoc plugin 测试忽略条件并在中设置其值 doclet.ignore 所有物将其设置为 true 将阻止处理doclet,而不是将其添加到最终文档中。

    exports.defineTags = function(dictionary) {
    
        var env = require('jsdoc/env');
    
        /*
         * Usage: @customIgnore prod, test
         */
        dictionary.defineTag('customIgnore', {
    
            mustHaveValue: true,
    
            onTagged: function(doclet, tag) {
                var i;
    
                // "envParams" is a property of your jsdoc.json
                var environments = env.conf.envParams; 
    
               // Will hold "prod, test"
                var tagValue = tag.value;
    
                var conditionValues = tag.value.split(",");
                for (i = 0; i < conditionValues.length && !doclet.ignore; i++) {            
                    if (environments.indexOf(conditionValues[i].trim()) !== -1) {
                        doclet.ignore = true;
                    }
                }
    
            }
        });
    };