【问题标题】:How to check the maximum number of selectors in stylelint?如何检查 stylelint 中选择器的最大数量?
【发布时间】:2019-03-09 08:00:36
【问题描述】:

我需要检查一个文件中是否有一个根类。 是否可以?

// Error
.a { }
.b { }

预期

// Success
.a {}

【问题讨论】:

    标签: sass lint stylelint scss-lint


    【解决方案1】:

    rules built into stylelint 无法做到这一点。

    但是,create a stylelint plugin 可以做到这一点。

    插件看起来像:

    // ./plugins/stylelint-root-max-rules/index.js
    
    const isNumber = require("lodash/isNumber");
    const {
      createPlugin,
      utils: { report, ruleMessages, validateOptions }
    } = require("stylelint");
    
    const ruleName = "plugin/root-max-rules";
    const messages = ruleMessages(ruleName, {
      expected: max =>
        `Expected no more than ${max} ${max === 1 ? "rule" : "rules"}`
    });
    
    const rule = quantity => {
      return (root, result) => {
        const validOptions = validateOptions(result, ruleName, {
          actual: quantity,
          possible: isNumber
        });
        if (!validOptions) return;
        const { length } = root.nodes.filter(node => node.type === "rule");
        if (length <= quantity) return;
        report({
          message: messages.expected(quantity),
          node: root,
          result,
          ruleName
        });
      };
    };
    
    module.exports = createPlugin(ruleName, rule);
    module.exports.ruleName = ruleName;
    module.exports.messages = messages;
    

    然后你会像这样使用插件:

    {
      "plugins": ["./plugins/stylelint-root-max-rules"],
      "rules": [
        "plugin/root-max-rules": 1
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 2011-10-13
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多