如何从Less visitor插件中从树中删除条目 [英] Howto remove a entry from the tree in a Less visitor plugin
本文介绍了如何从Less visitor插件中从树中删除条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试了以下操作:
module.exports = function(less) {
function RemoveProperty() {
this._visitor = new less.visitors.Visitor(this);
};
RemoveProperty.prototype = {
isReplacing: true,
isPreEvalVisitor: true,
run: function (root) {
return this._visitor.visit(root);
},
visitRule: function (ruleNode, visitArgs) {
if(ruleNode.name[0].value != '-some-aribitrary-property')
{
return ruleNode;
}
else
{
return new less.tree.Rule([], [], 0,"");
}
}
};
return RemoveProperty;
};
return new less.tree.Rule([], [], 0,"");
仍然会导致像: ;
这样的空输出,也不会返回任何内容,将给我一个错误:TypeError:无法读取未定义的属性'splice'.
return new less.tree.Rule([], [], 0,"");
still result in a empty output like : ;
also return nothing will give me an error: TypeError: Cannot read property 'splice' of undefined.
推荐答案
它可以..但从性能的角度来看并不理想..返回一个空数组
It can.. but its not ideal from a performance perspective.. return an empty array
visitRule: function (ruleNode, visitArgs) {
if (ruleNode.variable) {
return [];
}
return ruleNode;
},
如果您签出toCSS访问者,它会做很多事情.
If you check out the toCSS visitor it does this alot.
但是我认为它也应该允许未定义..将尽快添加.
But I think it should allow undefined too.. Will look at adding that soon.
这篇关于如何从Less visitor插件中从树中删除条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文