Как удалить запись из дерева в плагине Less посетителя

Я попробовал следующее:

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: Невозможно прочитать свойство "склейка" неопределенного.

1 ответ

Решение

Может... но не идеально с точки зрения производительности... вернуть пустой массив

visitRule: function (ruleNode, visitArgs) {
    if (ruleNode.variable) {
        return [];
    }
    return ruleNode;
},

Если вы проверяете посетителя toCSS, он делает это много.

Но я думаю, что это должно разрешить также неопределенное.. Скоро рассмотрим добавление.

Другие вопросы по тегам