bem-tools-find v0.0.1
bem-tools-find
Инструмент для поиска БЭМ сущностей по заданным критериям.
Возможности
- Использование в качестве самостоятельного CLI инструмента
- Использование в качестве плагина к bem-tools
- Возможность использования с помощью JS API
Установка
Инструмент устанавливается как обычная npm-зависимость:
$ npm install bem-tools-findИспользование
Использование с помощью CLI-интерфейса.
BEM Tool Find
Usage:
find COMMAND [OPTIONS] [ARGS]
find [OPTIONS] [ARGS]
Commands:
completion : Shell completion
Options:
-h, --help : Help
-l LEVEL, --level=LEVEL : Name of level(s)
-b BLOCK, --block=BLOCK : Name of block(s)
-e ELEMENT, --element=ELEMENT : Name of element(s)
-m MODIFIER, --mod=MODIFIER : Name of modifier(s)
-t TECH, --tech=TECH : Name of tech(s)
-v VIEW, --view=VIEW : Type of output
Arguments:
ENTITY : entityЗдесь:
-h,--help- флаг предназначенный для получения справочной информации по вызову команды.-l,--level- имя уровня(ей) переопределения блоков для поиска. Может быть использован несколько раз.-b,--block- имя блока(ов) для поиска. Может быть использован несколько раз.-e,--element- имя элемента(ов) блока(ов) для поиска. Может быть использован несколько раз.-m,--mod- имя модификатора. Если указан также параметр элемента (-e,--element), то подразумевается поиск по модификаторам элементов блока. Если параметр элемента отсутствует, то будет произведен поиск по модификаторам блока.-t,--tech- имя технологии блока.-v,--view- стиль вывода результата поиска. Может принимать значенияplain(по умолчанию),tableиtree.
Примеры вызова команды
- Поиск всех БЭМ сущностей в проекте:
$ ./node-modules/bem-tools-find/find- Поиск файлов блока
my-block:
$ ./node-modules/bem-tools-find/find -b my-block- Поиск файлов блока
my-blockна уровне переопределенияdesktop.blocks:
$ ./node-modules/bem-tools-find/find -l desktop.blocks -b my-block- Поиск файлов для нескольких блоков:
$ ./node-modules/bem-tools-find/find -b my-block1 -b my-block2- Поиск файлов элемента
my-elementблокаmy-block:
$ ./node-modules/bem-tools-find/find -b my-block -e my-element- Поиск файлов модификатора
my-modблокаmy-block:
$ ./node-modules/bem-tools-find/find -b my-block -m my-mod- Поиск файлов модификатора
my-modэлементаmy-elementблокаmy-block:
$ ./node-modules/bem-tools-find/find -b my-block -e my-element -m my-mod- Поиск файлов технологии
jsблокаmy-block:
$ ./node-modules/bem-tools-find/find -b my-block -t js- Вывод результатов поиска файлов блока
my-blockв табличном виде:
$ ./node-modules/bem-tools-find/find -b my-block -v table- Вывод результатов поиска файлов блока
my-blockв виде дерева БЭМ сущностей:
$ ./node-modules/bem-tools-find/find -b my-block -v tree- Получение справочной информации:
$ ./node-modules/bem-tools-find/find --helpКроме того, инструмент допускает использование сокращенного синтаксиса для поиска сущностей, например
для того, чтобы найти файлы блоков my-block1 и my-block2, можно использовать команду:
$ ./node-modules/bem-tools-find/find my-block1 my-block2Аналогично для элементов и модификаторов блоков:
$ ./node-modules/bem-tools-find/find my-block1__some-elem$ ./node-modules/bem-tools-find/find my-block1_modName_modValueИспользование инструмента с помощью JS API.
bem-tools-find также может быть использован программно. Для этого нужно подключить зависимость
bem-tools-find в ��одуль вашего проекта и передать переметры для поиска BEM-сущностей.
var bemToolsFind = require('bem-tools-find');
bemToolsFind({
levels: ['level1'],
blocks: ['block1', 'block2'],
elements: ['elem1', 'elem2'],
modifiers: ['mod1', 'mod2'],
techs: ['tech1', 'tech2']
}).pipe(process.stdout) //здесь вместо `process.stdout` можно использовать ваш собственный stream.Примечание: в передаваемом объекте с параметрами поиска любые поля могут быть опущены в том случае если критерий поиска по ним не является необходимым.
Тестирование
Запуск тестов
$ npm testЗапуск тестов с вычислением покрытия кода тестами с помощью инструмента istanbul:
$ npm run coverПроверка синтаксиса кода с помощью: jshint, jscs
$ npm run lintОсобая благодарность за помощь в разработке:
Разработчики:
Вопросы и предложения присылать в раздел issues репозитория данного инструмента.
10 years ago