stylelint-selector-bem-pattern БЭМ-линтер не работает

В gruntfile

stylelint: {
    all: ['app/styles/**/*.scss']
},

.stylelintrc

{
    "plugins": [
        "stylelint-selector-bem-pattern"
    ],
    "rules": {
      "plugin/selector-bem-pattern": {
      "componentName": "[A-Z]+",
      "componentSelectors": {
        "initial": "^\\.{componentName}(?:-[a-z]+)?$",
        "combined": "^\\.combined-{componentName}-[a-z]+$"
      },
      "utilitySelectors": "^\\.util-[a-z]+$"
    }
    }
}

/Users/jitendravyas/app-test/styles/components/_campaign-settings-integrations.scss

/* @define campaign-settings */

.campaign-settings__integrations {
  @include flex;
}

.campaign-settings__integration {
  border: 1px solid $color-green;
  border-radius: 3px;
  color: $color-green;
  margin-right: $base-spacing-unit;
  @include flex;

  .check {
    background: $color-green;
    color: white;
    @include vertical-center;
  }

  > div {
    padding: $half-spacing-unit;
  }
}

При запуске stylelint не возникает никаких ошибок. Stylelint работает с другими правилами.


person Jitendra Vyas    schedule 06.04.2017    source источник


Ответы (1)


Я считаю, что вы неправильно определили имя вашего компонента. Таким образом, линтер правильно пропускает файл.

Вы должны использовать либо краткий или подробный синтаксис:

/** @define campaign-settings */

or

/* postcss-bem-linter: define campaign-settings */

На данный момент вы используете недопустимую форму краткого синтаксиса, т. е. ваш комментарий начинается с /*, а не /**.

person jeddy3    schedule 06.04.2017
comment
В вашем первом комментарии вы имеете в виду, что имя файла и имя компонента должны быть одинаковыми? - person Jitendra Vyas; 06.04.2017
comment
Теперь я получаю Invalid component name in definition /*/** @define campaign-settings */*/ plugin/selector-bem-pattern ошибку - person Jitendra Vyas; 06.04.2017