bem/bem-tools
-
В версии 0.2.0 появилась возможность использовать команды `bem-tools` через API.
В версии 0.2.0 появилась возможность использовать команды `bem-tools` через API.
-
Модуль `bem` экспортирует объект основной команды, у которого есть свойство `api`. Использовать его можно так:
Модуль `bem` экспортирует объект основной команды, у которого есть свойство `api`.
Использовать его можно так: -
```js var Q = require('q'), BEM = require('bem').api,
```js
var Q = require('q'),
BEM = require('bem').api, -
techs = ['css', 'js'], blocks = ['b-block1', 'b-block2'];
techs = ['css', 'js'],
blocks = ['b-block1', 'b-block2']; -
Q.when(BEM.create.block({ forceTech: techs }, { names: blocks }), function() { console.log('Create blocks: %s', blocks.join(', ')); }); ```
Q.when(BEM.create.block({ forceTech: techs }, { names: blocks }), function() {
console.log('Create blocks: %s', blocks.join(', '));
});
``` -
Как видно из примера, можно обращаться ко всем командам `bem-tools`, в том числе вложенным.
Как видно из примера, можно обращаться ко всем командам `bem-tools`, в том числе вложенным.
-
Команды принимают два аргумента:
Команды принимают два аргумента:
-
* **Object** `opts` опции команды * **Object** `args` аргументы команды
* **Object** `opts` опции команды
* **Object** `args` аргументы команды -
Возвращают объект типа `Q.promise`.
Возвращают объект типа `Q.promise`.
-
#### BEM.create
#### BEM.create
-
Команды для создания БЭМ-сущностей.
Команды для создания БЭМ-сущностей.
-
##### BEM.create.level()
##### BEM.create.level()
-
Создание уровня переопределения.
Создание уровня переопределения.
-
###### Опции
###### Опции
-
* **String** `outputDir` директория для записи результата, по умолчанию текущая * **String** `level` «прототип» уровня переопределения * **Boolean** `force` принудительно создать уровень, даже если он существует
* **String** `outputDir` директория для записи результата, по умолчанию текущая
* **String** `level` «прототип» уровня переопределения
* **Boolean** `force` принудительно создать уровень, даже если он существует -
###### Аргументы
###### Аргументы
-
* **Array** `names` имена создаваемых уровней переопределения
* **Array** `names` имена создаваемых уровней переопределения
-
###### Пример использования
###### Пример использования
-
```js var PATH = require('path'), Q = require('q'), BEM = require('bem').api,
```js
var PATH = require('path'),
Q = require('q'),
BEM = require('bem').api, -
outputDir = PATH.join(__dirname, 'levels'), levels = ['blocks-common', 'blocks-desktop'];
outputDir = PATH.join(__dirname, 'levels'),
levels = ['blocks-common', 'blocks-desktop'];