bem/bem-tools
- 
- абсолютный путь до технологии — будет использоваться модуль, находящийся по этому пути; - короткое имя технологии — будет использоваться реализация технологии с указанным именем из `bem-tools`; - пустая строка — будет использоваться реализация технологии по умолчанию.
- абсолютный путь до технологии — будет использоваться модуль, находящийся по этому пути;
- короткое имя технологии — будет использоваться реализация технологии с указанным именем из `bem-tools`;
- пустая строка — будет использоваться реализация технологии по умолчанию. - 
По умолчанию на уровне переопределения явно не определена ни одна из технологий. Если попытаться внутри таких уровней использовать техологии по короткому имени, например `css`, `js` и другие, то будут использованы модули технологии из состава `bem-tools`, если они существуют. Полный список таких технологий смотрите в [lib/techs](https://github.com/bem/bem-tools/tree/master/lib/techs).
По умолчанию на уровне переопределения явно не определена ни одна из технологий. Если попытаться внутри таких уровней
использовать техологии по короткому имени, например `css`, `js` и другие, то будут использованы модули технологии
из состава `bem-tools`, если они существуют. Полный список таких технологий смотрите в [lib/techs](https://github.com/bem/bem-tools/tree/master/lib/techs). - 
Если попытаться использовать технологии, которые явно не задекларированы, и которых при этом не существуют в `bem-tools` — будет использоваться реализация технологии по умолчанию (см. [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js)).
Если попытаться использовать технологии, которые явно не задекларированы, и которых при этом не существуют
в `bem-tools` — будет использоваться реализация технологии по умолчанию
(см. [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js)). - 
Технологии, задекларированные на уровне используются:
Технологии, задекларированные на уровне используются:
 - 
- командой `bem create` - командой `bem build` - для интроспекции по файловой системе (см. метод `getLevelByIntrospection()` класса `Level`) - в процессе сборки командами `bem make` и `bem build`
- командой `bem create`
- командой `bem build`
- для интроспекции по файловой системе (см. метод `getLevelByIntrospection()` класса `Level`)
- в процессе сборки командами `bem make` и `bem build` - 
Мы рекомендуем явно декларировать все используемые технологии.
Мы рекомендуем явно декларировать все используемые технологии.
 - 
##### Мета-информация для системы сборки
##### Мета-информация для системы сборки
 - 
Во время сборки проекта командами `bem make` и `bem server` для выполнения команды `bem build` нужно знание о том, из каких уровней переопределения нужно собирать тот или иной бандл. Это знания необходимо отобразить в свойсте `bundleBuildLevels` объекта, возвращаемого функцией `getConfig()`.
Во время сборки проекта командами `bem make` и `bem server` для выполнения команды `bem build` нужно знание о том,
из каких уровней переопределения нужно собирать тот или иной бандл. Это знания необходимо отобразить в свойсте
`bundleBuildLevels` объекта, возвращаемого функцией `getConfig()`. - 
```js exports.getConfig = function() {
```js
exports.getConfig = function() { - 
bundleBuildLevels: this.resolvePaths([ // your levels here ])
bundleBuildLevels: this.resolvePaths([
// your levels here
]) - 
### Модули технологий
### Модули технологий
 - 
#### API
#### API
 - 
Смотрите документацию в исходном файле [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js).
Смотрите документацию в исходном файле [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js).
 - 
#### Создание модуля технологии
#### Создание модуля технологии
 - 
Существует несколько способов написания модулей технологии.
Существует несколько способов написания модулей технологии.
 - 
Во всех описанных ниже способах из методов можно обратиться к объекту технологии через `this`, а через `this.__base(...)` можно вызвать метод одного из базовых классов. К классу технологии можно обратиться через `this.__class`. Всё это является следствием использование модуля [inherit](https://github.com/dfilatov/node-inherit) для органиазации наследования.
Во всех описанных ниже способах из методов можно обратиться к объекту технологии через `this`,
а через `this.__base(...)` можно вызвать метод одного из базовых классов. К классу технологии
можно обратиться через `this.__class`. Всё это является следствием использование модуля
[inherit](https://github.com/dfilatov/node-inherit) для органиазации наследования. - 
##### Очень простой способ
##### Очень простой способ
 - 
Способ заключается в том, что вы создаёте обычный CommonJS модуль, из которого экспортируете несколько функций, которые перекроют методы базового класса `Tech` из модуля [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js).
Способ заключается в том, что вы создаёте обычный CommonJS модуль, из
которого экспортируете несколько функций, которые перекроют методы базового
класса `Tech` из модуля [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js). - 
```js exports.getCreateResult = function(...) { // ваш код }; ```
```js
exports.getCreateResult = function(...) {
// ваш код
};
``` - 
Вы так же можете сгруппироать все методы в объекте `techMixin`. Это рекомендованный способ.
Вы так же можете сгруппироать все методы в объекте `techMixin`. Это рекомендованный способ.