EN
eGavr
eGavr
27 декабря 2015

Привет, хочу рассказать о результатах нашей команды на минувшем хакатоне.

Со мной в команде были Сергей Бережной, Вадим Яловенко , Алексей Хлебаев и Александр Потапенко.

В мире 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.

Плагин будет полезен для тех проектов, которые мигрируют с одной технологии на другую, например, bemhtmlbemhtml.js или cssstyl.

3.Плагин, который умеет проверять наличие неправильных селекторов в технологии stylbemhint-plugins-check-file-entity (у плагина появилась документация, поэтому подробнее можно почитать на github).

Мы создали тестовый репозиторий bemhint-test-prj, который демонстрирует работу bemhint и выше описанных плагинов.

В конце хочу поблагодарить всех ребят из нашей команды и организаторов хакатона. Было очень интересно :)