JSDoc:有条件的忽略可能吗?
JSDoc: Is conditional ignore possible?
有没有办法有条件地忽略一些已记录的符号?
我想做这样的事情(伪代码):
/**
* @ignore if dev
*/
var a = 42;
/**
* @ignore if prod
*/
var b = 24;
在此示例中,如果我将生成器配置为 dev
,我希望我的 JSDoc 生成器仅记录 var a
,反之亦然 var b
。
这可能吗?
您可以实现自己的 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;
}
}
}
});
};
有没有办法有条件地忽略一些已记录的符号? 我想做这样的事情(伪代码):
/**
* @ignore if dev
*/
var a = 42;
/**
* @ignore if prod
*/
var b = 24;
在此示例中,如果我将生成器配置为 dev
,我希望我的 JSDoc 生成器仅记录 var a
,反之亦然 var b
。
这可能吗?
您可以实现自己的 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;
}
}
}
});
};