JSDoc:条件忽略可能吗?

时间:2018-01-04 14:41:21

标签: javascript jsdoc

有没有办法有条理地忽略一些记录的符号? 我想做这样的事情(伪代码):

/**
* @ignore if dev
*/
var a = 42;

/**
* @ignore if prod
*/
var b = 24;

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

这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以实现自己的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;
                }
            }

        }
    });
};