innabelaya / enb-bem-examples

BEM examples for ENB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

enb-bem-examples

NPM version Build Status Dependency Status

Инструмент для генерации уровней-сетов из примеров БЭМ-блоков с помощью ENB.

Установка:

$ npm install --save-dev enb-bem-examples

Для работы модуля требуется зависимость от пакета enb-magic-factory версии 0.2.x.

Технология examples

Примеры — это обычные бандлы, которые располагаются в папке-технологии examples той БЭМ-сущности, которой они принадлежат. На файловой системе они складываются плоским списком (simple-уровень):

$ tree -a <level>.blocks/<block-name>/<block-name>.examples

<block-name>.examples/
 ├── 10-simple.bemjson.js
 ├── 10-simple.title.txt
 ├── 20-complex.bemjson.js
 └── 20-complex.title.txt

У каждого примера может быть свой уровень блоков:

$ tree -a <level>.blocks/<block-name>/<block-name>.examples

<block-name>.examples/
 ├── blocks/                    # уровень для всех примеров блока <block-name>
 ├── 10-simple.blocks/          # уровень для примера 10-simple
 └── 10-simple.bemjson.js

В результате будет построен набор из обычных уровней бандлов (nested-уровни):

$ tree -a <sets-name>.examples

<sets-name>.examples
 └── <block-name>/
      ├── 10-simple/
          ├── blocks/
          └── 10-simple.bemjson.js
      └── 20-complex/
          ├── blocks/
          └── 20-complex.bemjson.js

Как использовать?

module.exports = function (config) {
    config.includeConfig('enb-bem-examples');

    var examples = config.module('enb-bem-examples') // Создаём конфигуратор сетов
        .createConfigurator('examples');             //  в рамках `examples` таска.

    examples.configure({                     // Декларируем сборку и запуск спеков.
        destPath: 'desktop.examples',        // Указываем путь до уровня-сета.
        levels: ['blocks']                   // Указываем уровни для БЭМ-сущностей
                                             //  которых нужно собирать примеры
    });
};

Для сборки всех наборов примеров, запускаем таск:

$ ./node_modules/.bin/enb make examples

Для сборки примеров, относящихся к конкретной БЭМ-сущности, запускаем:

$ ./node_modules/.bin/enb make examples desktop.examples/block__elem

Для сборки конкретного примера, запускаем:

$ ./node_modules/.bin/enb make examples desktop.examples/block__elem/10-simple

Пример использования можно посмотреть в директории examples/silly.

About

BEM examples for ENB

License:MIT License