bem/bem-tools
-
065a059db8a32ec078c1ba2919306f5a364c2dc9
065a059db8a32ec078c1ba2919306f5a364c2dc9
```js
var INHERIT = require('inherit'),
BEM = require('bem'),
BaseTech = BEM.getTechClass(require.resolve('path/to/tech/module')); -
9cb9c9f59e96e381dc61ac6e594b1903a412cb55
9cb9c9f59e96e381dc61ac6e594b1903a412cb55
// ваш код -
c49e428eaad981c32f9dc0ddee99f7f6dc272713
c49e428eaad981c32f9dc0ddee99f7f6dc272713
##### Примеры модулей технологий -
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` принудительно создать уровень, даже если он существует