bem/borschik — pull request #18 by alexeyten (2013-08-01 11:03:55+00:00)
Title: Улучшение борщика

### Что и зачем сделано

1. Выкинул технологию `css-ometajs` — я не могу придумать ни одной вменяеймой причины пользоваться ей, вместо `css`.
2. Технология `js+coffee` уехала в [плагин](/alexeyten/borschik-tech-coffee).
3. Выкинул лишние зависимости.
4. Объявил минимайзеры (`csso` и `uglifyjs`) опциональными. В принципе они всё равно будут ставиться, но при желании можно сэкономить.
5. Сделал `inherit` методом технологии для использования в плагинах.
6. Вынес получение технологии в отдельную функию и добавил её в exports, для возможности наследования в сторонних модулях.

### Как ищется технология

Поиск и загрузка технологии немного поменялись.
Если в параметре `-t` указан относительный путь (`-t ./tech.js`, `-t ../tech/`, `-t /path/to/global...` и т.п.), то в качестве технологии загружается этот файл. Если же задано просто имя (`-t coffee`, `-t js-link`, `-t private-techs/some`), то сначала ищется «встроенная» технология с таким именем, а если такой нет, то к имени прибавляется префикс `borschik-tech-` и происходит поиск, как если бы было написано `require('borschik-tech-...')` в текущем каталоге или в каталоге где установлен борщик. Встроенные технологии нельзя переопределить. Т.е. команда `borschik -t js ...` всегда будет использовать встроенную технологию `js`, а не пакет `borschik-tech-js`.

Если параметр `-t` не указан, то из имени файла берётся расширение в качестве имени технологии и поиск происходит как описано выше.

Такой способ поиска даёт возможность иметь глобально установленный борщик и локальные файлы или пакеты технологий. Например при такой структуре пакета:
```
my-pack/
node_modules/
borschik-tech-xxx/
```
запуск команды `borschik -i file.xxx`, автоматически найдёт технологию `xxx` и применит её.

см. также предыдущий issue veged/borschik#65