Где-то видел пример линтинга, подключаемого в .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 Вообще не понимаю, как у тебя линтеры будут проверять только те файлы, которые нужны в сборке.