Где-то видел пример линтинга, подключаемого в .enb/make.js, не могу найти. Ткните, пожалуйста?
Интересует пример предварительной статической проекта проверки перед сборкой (js, bemhtml, возможно, styl/css).
Где-то видел пример линтинга, подключаемого в .enb/make.js, не могу найти. Ткните, пожалуйста?
Интересует пример предварительной статической проекта проверки перед сборкой (js, bemhtml, возможно, styl/css).
Кмк, нет смысла тянуть линтинг внутрь ENB. Проще в
package.jsonв секцииscriptsнаписать командуbuildилиmake, которая будет звать линтеры, а потом запускать сборку.Получится что-то типа
@tadatuta
Пробую прикрутить bemhint, не удаётся (уже традиция?) корректно подсунуть ему исходные файлы.
Пока разбираюсь с тем, что происходит, в данный момент пытаюсь понять, куда деваются описания levels на пути от config к bem-walk -- исходя из текущих подозрений.
Файл конфигурации (
.bemhint.js) взял из описания, поправил levels под свою конфигруацию:При запуске bemhtml выдаёт только
Verbose-режима не нашёл, пытаюсь трассировать. Пока получается, что до исходных файлов в
blocksникто не добирается (в то же время значительное -- порядка 10-15 сек. -- время на что-то тратится; пока не понял, на что).Подозреваю, что нестыковка где-то в конфигурации, или устарелом описании. М.б., надо что-то ещё доопределить в файле конфига?
P.S. Можно (на всякий случай: надеюсь обойтись bemhint'ом, но вдруг не хватит...) ещё ткнуть в примеры конфигурации eslint/stylelint? Аналогично: интересует правильное натравливание на список папок из levels, исключения для
deps,specsи пр. (Желательно ещё stylint или что-то вроде -- если правильно понимаю, stylelint stylus не умеет?)UPD Как выясняется
levelsв конифге предназначены только для сравнения сbasename:-- т.е., по-любому линтим только блоки (соотв., для линтинга
*.bundlesнадо будет прикручивать что-то ещё; jshint/eslint отдельным запуском?).Выходит, сразу ограничиваем область сканирования папкой
blocksиlevelsуказываем, как[ 'root', 'shared', ... ].Теперь находит технологии ля всех блоков и элементов. В
scanner.filterTechs_они, по крайней мере, попадают. Дальше, кажется, снова всё куда-то исчезает и выводится одинокийNo BEM errors.. Сейчас буду разбираться дальше. Уже прогресс. %)bemhintдействительно пока не умеет линтить бандлы. Есть планы это исправить, но пока не доходят руки.Скопипастил актуальный конфиг из нашего проекта:
При этом обычный линтинг JS мы конфигурим отдельно через
.eslintrc.js:.eslintignore:Наш конфиг
.stylelintrc:Но
stylusон действительно не умеет.Если это не помогает, дальше стоит призывать @eGavr, наверное.
@tadatuta Спасибо. Моя проблема была именно (и только) в расположении папок уровней:
blocks/{levelName}-- такого в bemhint не ожидали, по всей видимости. Попробую закинуть туда небольшой pull-request на две поправленные строчки.Примеры конфигов -- оч. спасибо! Это пригодится.
@tadatuta Вообще не понимаю, как у тебя линтеры будут проверять только те файлы, которые нужны в сборке.