Skip to content
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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dima117
Copy link
Collaborator

@dima117 dima117 commented Jul 7, 2017

Т.к. проверка тэгов не имеет к css-неймингу никакого отношения, плагин это никак не проверяет и настройку allowTag добавлять не нужно.

Если я правильно понял, проблема в том, что во вложенных селекторах не проходит валидация наличия в селекторе класса блока. В этом PR добавлены настройки, позволяющие отключать отдельные правила валидации.

Посмотрите изменения, пожалуйста.

cc @skad0, @tadatuta

@dima117 dima117 requested a review from eGavr July 7, 2017 19:07
Copy link

@skad0 skad0 left a 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);
Copy link

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);

Copy link

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] - Исключения для проверки соответствия названий классов БЭМ-нотации
Copy link

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] - Проверять наличие класса блока в селекторе
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тож с маленькой

@dima117
Copy link
Collaborator Author

dima117 commented Jul 14, 2017

Не понимаю почему проверка нейминга css должна падать на тегах без возможности этого избежать.

Проверка никак не обрабатывает тэги. Она корректно падает на селекторах, в которых нет класса блока.

Эти опции дают возможность просто выключить проверки, которые нужны (я думаю всегда), но при этом всегда валиться на селекторах тегов и любых других.

Ваша проблема в том, что валидатор ничего не знает про вложенность и другие плагины для кастомного синтаксиса стилей. Логика игнорирования классов помогает в частном случае, но не решает проблему в целом и сильно усложняет код. Для корректного решения нужно, чтобы валидатор знал о логике ваших плагинов (например, формировал css при помощи идентичного набора плагинов, проверял его, а потом узнавал позицию ошибки по sourcemap).

Отключение этой проверки решает вашу проблему на 80% и реализуется на порядок проще. По соотношению цена/качество этот вариант сильно лучше.

@dima117
Copy link
Collaborator Author

dima117 commented Jul 14, 2017

не вижу причин не обновить пакеты
надо заменить npm run unit на npm test

Это не входит в текущую задачу. Сделай отдельный PR и я его сразу волью.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants