• 3a743cb8be0030f394f48f1a3785f6502df7a287

    3a743cb8be0030f394f48f1a3785f6502df7a287

     * [bem-tools/lib/techs/](https://github.com/bem/bem-tools/tree/nodejs/lib/techs) 
     * [bem-bl/blocks-common/i-bem/bem/techs/](https://github.com/bem/bem-bl/tree/master/blocks-common/i-bem/bem/techs)
  • bead77508a378ba0b2474daf9876d8994f135f57

    bead77508a378ba0b2474daf9876d8994f135f57

    ### Использование через API
  • 7c76dea77d09253b6ba64eff9efed02c3c08b667

    7c76dea77d09253b6ba64eff9efed02c3c08b667

    В версии 0.2.0 появилась возможность использовать команды `bem-tools` через API.
  • 34b3d3ce009f36190f2324dbe9bd058e90682c52

    34b3d3ce009f36190f2324dbe9bd058e90682c52

    Модуль `bem` экспортирует объект основной команды, у которого есть свойство `api`. 
    Использовать его можно так:
  • 980f52689df973c5a20977185c70567decc3827b

    980f52689df973c5a20977185c70567decc3827b

    ```js 
    var Q = require('q'), 
        BEM = require('bem').api,
  • 43f645b91a338d49372d8e698fef112e42222c59

    43f645b91a338d49372d8e698fef112e42222c59

        techs = ['css', 'js'], 
        blocks = ['b-block1', 'b-block2'];
  • 290fba1fb6fbae65af8334078ab7ab3948b9cc0b

    290fba1fb6fbae65af8334078ab7ab3948b9cc0b

    Q.when(BEM.create.block({ forceTech: techs }, { names: blocks }), function() { 
        console.log('Create blocks: %s', blocks.join(', ')); 
    }
    ); 
    ```
  • 9680b2d0f92d848239c3348a49ddb3e175520aa5

    9680b2d0f92d848239c3348a49ddb3e175520aa5

    Как видно из примера, можно обращаться ко всем командам `bem-tools`, в том числе вложенным.
  • 0049f35f8f9cef39610c0e174bc054235e39a427

    0049f35f8f9cef39610c0e174bc054235e39a427

    Команды принимают два аргумента:
  • d1f061cd51a65910cf42ea4ffdfff459bcae4037

    d1f061cd51a65910cf42ea4ffdfff459bcae4037

     * **Object** `opts` опции команды 
     * **Object** `args` аргументы команды
  • 18bd9eafb7a0f119d9b9f6f8f038e36d84127988

    18bd9eafb7a0f119d9b9f6f8f038e36d84127988

    Возвращают объект типа `Q.promise`.
  • edb43326211666f8b28860a01426bd6fd35b62ec

    edb43326211666f8b28860a01426bd6fd35b62ec

    #### BEM.create
  • 5b5e25eb84eb6ef55d6b4da90b60beb72e27d5be

    5b5e25eb84eb6ef55d6b4da90b60beb72e27d5be

    Команды для создания БЭМ-сущностей.
  • 9960b3616ff2ae2fb59b326f2625bd5c773de9e6

    9960b3616ff2ae2fb59b326f2625bd5c773de9e6

    ##### BEM.create.level()
  • ad92ea1c32dc6b237581934d9d596d07cc2efea0

    ad92ea1c32dc6b237581934d9d596d07cc2efea0

    Создание уровня переопределения.
  • e28040c2b90cf4be1f69c199ad749dbca1830639

    e28040c2b90cf4be1f69c199ad749dbca1830639

    ###### Опции
  • 34b3b77167d01e4e95b762562a4bccd60c56aab0

    34b3b77167d01e4e95b762562a4bccd60c56aab0

     * **String** `outputDir` директория для записи результата, по умолчанию текущая 
     * **String** `level` «прототип» уровня переопределения 
     * **Boolean** `force` принудительно создать уровень, даже если он существует
  • 8955c2c4693bfc925ab8f456ebf6275889490f21

    8955c2c4693bfc925ab8f456ebf6275889490f21

    ###### Аргументы
  • 227511d3c52e70e0b2b3c96cbec69f0d639bf3ae

    227511d3c52e70e0b2b3c96cbec69f0d639bf3ae

     * **Array** `names` имена создаваемых уровней переопределения
  • 8a914682a1732e04786eb2a5f613e20796e09b07

    8a914682a1732e04786eb2a5f613e20796e09b07

    ###### Пример использования