-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
добавил настройки отключения валидации #3
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не понимаю почему проверка нейминга css должна падать на тегах без возможности этого избежать.
Эти опции дают возможность просто выключить проверки, которые нужны (я думаю всегда), но при этом всегда валиться на селекторах тегов и любых других.
А еще:
- не вижу причин не обновить пакеты
- надо заменить npm run unit на npm test
!options && (options = {}); | ||
|
||
!options.hasOwnProperty('requireBlockClass') && (options.requireBlockClass = true); | ||
!options.hasOwnProperty('requireBemNaming') && (options.requireBemNaming = true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
лучше не начинать с отрицания, а использовать || тут и выше
options.hasOwnProperty('requireBemNaming') || (options.requireBemNaming = true);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ну и так как опция не используется далее, можно все это сразу ниже в присваивании делать, но то такое, чисто дело вкуса
@@ -20,11 +20,21 @@ var bemNaming = require('bem-naming'), | |||
* | |||
* @constructor | |||
* @this {CssNaming} | |||
* @param {string[]} excludes - Исключения для проверки соответствия названий классов БЭМ-нотации | |||
* @param {Object} options - Настройки валидации | |||
* @param {String[]} [options.excludes] - Исключения для проверки соответствия названий классов БЭМ-нотации |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
это примитив, с маленькой буквы
* @param {string[]} excludes - Исключения для проверки соответствия названий классов БЭМ-нотации | ||
* @param {Object} options - Настройки валидации | ||
* @param {String[]} [options.excludes] - Исключения для проверки соответствия названий классов БЭМ-нотации | ||
* @param {Boolean} [options.requireBlockClass] - Проверять наличие класса блока в селекторе |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
тож с маленькой
Проверка никак не обрабатывает тэги. Она корректно падает на селекторах, в которых нет класса блока.
Ваша проблема в том, что валидатор ничего не знает про вложенность и другие плагины для кастомного синтаксиса стилей. Логика игнорирования классов помогает в частном случае, но не решает проблему в целом и сильно усложняет код. Для корректного решения нужно, чтобы валидатор знал о логике ваших плагинов (например, формировал css при помощи идентичного набора плагинов, проверял его, а потом узнавал позицию ошибки по sourcemap). Отключение этой проверки решает вашу проблему на 80% и реализуется на порядок проще. По соотношению цена/качество этот вариант сильно лучше. |
Это не входит в текущую задачу. Сделай отдельный PR и я его сразу волью. |
Т.к. проверка тэгов не имеет к css-неймингу никакого отношения, плагин это никак не проверяет и настройку
allowTag
добавлять не нужно.Если я правильно понял, проблема в том, что во вложенных селекторах не проходит валидация наличия в селекторе класса блока. В этом PR добавлены настройки, позволяющие отключать отдельные правила валидации.
Посмотрите изменения, пожалуйста.
cc @skad0, @tadatuta