bem/bem-tools
-
bem build \ -l bem-bl/blocks-common -l bem-bl/blocks-desktop \ -l blocks -l pages/index/blocks \ -d pages/index/index.bemhtml.js \ -t bem-bl/blocks-desktop/i-bem/bem/techs/bemhtml.js \ -o pages/index -n index
bem build \
-l bem-bl/blocks-common -l bem-bl/blocks-desktop \
-l blocks -l pages/index/blocks \
-d pages/index/index.bemhtml.js \
-t bem-bl/blocks-desktop/i-bem/bem/techs/bemhtml.js \
-o pages/index -n index -
Пример построения страниц при помощи `bem build` есть в демонстрационном проекте на блоках `bem-bl`: https://github.com/toivonen/bem-bl-test/blob/master/GNUmakefile
Пример построения страниц при помощи `bem build` есть в демонстрационном
проекте на блоках `bem-bl`: https://github.com/toivonen/bem-bl-test/blob/master/GNUmakefile -
#### bem decl
#### bem decl
-
`bem decl` позволяет работать с файлами деклараций, а именно:
`bem decl` позволяет работать с файлами деклараций, а именно:
-
* объединять несколько деклараций в одну * «вычитать» декларации, то есть получать разницу между ними
* объединять несколько деклараций в одну
* «вычитать» декларации, то есть получать разницу между ними -
Для всех подкоманд `bem decl` в качестве входных деклараций (ключ `-d`) могут выступать файлы как в формате `bemdecl.json`, так и файлы в формате `deps.js`.
Для всех подкоманд `bem decl` в качестве входных деклараций (ключ `-d`) могут выступать
файлы как в формате `bemdecl.json`, так и файлы в формате `deps.js`. -
На выходе (ключ `-o`) всегда получается файл в формате `deps.js`.
На выходе (ключ `-o`) всегда получается файл в формате `deps.js`.
-
##### bem decl merge
##### bem decl merge
-
`bem decl merge` объединяет несколько деклараций в одну. Она бывает полезна в ситуациях, когда, например, вам нужно собрать общую сборку для нескольких страниц.
`bem decl merge` объединяет несколько деклараций в одну. Она бывает полезна в ситуациях,
когда, например, вам нужно собрать общую сборку для нескольких страниц. -
###### Создание декларации для всех страниц
###### Создание декларации для всех страниц
-
bem decl merge \ -d pages/index/index.deps.js \ -d pages/about/about.deps.js \ -d pages/search/search.deps.js \ -o pages/common/common.deps.js
bem decl merge \
-d pages/index/index.deps.js \
-d pages/about/about.deps.js \
-d pages/search/search.deps.js \
-o pages/common/common.deps.js -
##### bem decl subtract
##### bem decl subtract
-
`bem decl subtract` «вычитает» из первой указанной декларации все остальные. Она полезна в ситуациях, когда, например, вам нужно сделать бандл, которые будет догружатся на страницу по требованию.
`bem decl subtract` «вычитает» из первой указанной декларации все остальные. Она полезна
в ситуациях, когда, например, вам нужно сделать бандл, которые будет догружатся на страницу
по требованию. -
###### Создание декларации для подгружаемого по требованию «тяжёлого» блока
###### Создание декларации для подгружаемого по требованию «тяжёлого» блока
-
bem decl subtract \ -d bundles/heavy-block/heavy-block.deps.js \ -d pages/common/common.deps.js \ -o bundles/heavy-block/heavy-block.bundle.js
bem decl subtract \
-d bundles/heavy-block/heavy-block.deps.js \
-d pages/common/common.deps.js \
-o bundles/heavy-block/heavy-block.bundle.js -
##### bem make В команде `make` реализована сборка БЭМ проектов. Узнать больше о системах сборки можно из доклада Сергея Белова http://clubs.ya.ru/yasubbotnik/replies.xml?item_no=406.
##### bem make
В команде `make` реализована сборка БЭМ проектов. Узнать больше о системах сборки можно из доклада Сергея Белова http://clubs.ya.ru/yasubbotnik/replies.xml?item_no=406. -
`bem make` собирает проект
`bem make` собирает проект
-
* подключает библиотеки блоков * выполняет сборку в уровнях переопределения * выполняет сборку бандлов * собирает шаблоны (`bemhtml`) * собирает `html` из `bemjson.js` * собирает статические файлы (`js`, `css`) * раскрывает `@import` в `css` файлах (`borschik`) * раскрывает `borschik:link:include` в `js` файлах (`borschik`) * сжимает `css` файлы при помощи `csso` * сжимает `js` файлы при помощи `uglifyjs`
* подключает библиотеки блоков
* выполняет сборку в уровнях переопределения
* выполняет сборку бандлов
* собирает шаблоны (`bemhtml`)
* собирает `html` из `bemjson.js`
* собирает статические файлы (`js`, `css`)
* раскрывает `@import` в `css` файлах (`borschik`)
* раскрывает `borschik:link:include` в `js` файлах (`borschik`)
* сжимает `css` файлы при помощи `csso`
* сжимает `js` файлы при помощи `uglifyjs` -
##### bem server
##### bem server
-
`bem server` веб-сервер разработчика, который делает доступными по http протоколу файлы, собранные на лету bem make. bem server может быть вам полезен для разработки статических страниц по bem методу. Вы просто вносите изменения в файлы проекта, обновляете страницу в браузере и видите новый результат — файлы, которые затронули ваши изменения, будут автоматически пересобраны. Если же в вашем проекте нет статических страниц, вы можете настроить бэкенд и окружение таким образом, чтобы он обращался к bem server за файлами стилей и скриптов. bem server позволяет общаться с ним через привычный TCP socket или через UNIX domain socket.
`bem server` веб-сервер разработчика, который делает доступными по http протоколу файлы, собранные на лету bem make. bem server может быть вам полезен для разработки статических страниц по bem методу. Вы просто вносите изменения в файлы проекта, обновляете страницу в браузере и видите новый результат — файлы, которые затронули ваши изменения, будут автоматически пересобраны. Если же в вашем проекте нет статических страниц, вы можете настроить бэкенд и окружение таким образом, чтобы он обращался к bem server за файлами стилей и скриптов. bem server позволяет общаться с ним через привычный TCP socket или через UNIX domain socket.