Привет, хочу рассказать о результатах нашей команды на минувшем хакатоне.
Со мной в команде были Сергей Бережной, Вадим Яловенко , Алексей Хлебаев и Александр Потапенко.
В мире JS и CSS написано достаточное количество линтеров кода, которые делают нашу разработку более удобной и надежной, но до сих пор не было реализовано ни одного линтера, который что-то знает про БЭМ.
И вот это послужило основной причиной для написания БЭМ-линтера, который из коробки знает про специфику БЭМ-проектов.
За несколько дней на хакатоне мы реализовали ядро линтера – bemhint, предоставляющее API для написания внешних плагинов, через которые реализуются проверки БЭМ-сущностей проекта.
Реализованные плагины:
1.Два плагина, которые позволяют интегрировать jshint
и jscs
в БЭМ-проект через bemhint
:
Эти два плагина позволяют через конфиг bemhint
-а конфигурировать и запускать соответственно jshint
и jscs
. Зачем? Ответ очень прост: jshint
и jscs
не дают возможности написать отдельный конфиг для проверки, например, *.deps.js
-файлов и отдельный конфиг для проверки *.js
-файлов. В свою очередь bemhint
предоставляет возможность конфигурировать не маски файлов, а технологии, то есть в данном случае технологии deps.js
и js
.
2.Плагин для проверки ненужных технологий в проекте – bemhint-plugins-redundant-techs.
Плагин будет полезен для тех проектов, которые мигрируют с одной технологии на другую, например, bemhtml
→ bemhtml.js
или css
→ styl
.
3.Плагин, который умеет проверять наличие неправильных селекторов в технологии styl
– bemhint-plugins-check-file-entity (у плагина появилась документация, поэтому подробнее можно почитать на github
).
Мы создали тестовый репозиторий bemhint-test-prj, который демонстрирует работу bemhint
и выше описанных плагинов.
В конце хочу поблагодарить всех ребят из нашей команды и организаторов хакатона. Было очень интересно :)