bem/bem-tools
-
f97c2df5ba97645c2f0117141e3b31829cb39e91
f97c2df5ba97645c2f0117141e3b31829cb39e91
###### Создание сборки с шаблонами bemhtml.js по файлу deps.js -
d3eadcf1308b61e0bfb3b83a17949e5e1d5e43ec
d3eadcf1308b61e0bfb3b83a17949e5e1d5e43ec
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 -
0d200781766019005892e685a4688fe084274dae
0d200781766019005892e685a4688fe084274dae
Пример построения страниц при помощи `bem build` есть в демонстрационном
проекте на блоках `bem-bl`: https://github.com/toivonen/bem-bl-test/blob/master/GNUmakefile -
ddbdc5cc3529fadba03251552cf0acef6ee1befa
ddbdc5cc3529fadba03251552cf0acef6ee1befa
#### bem decl -
f5cd6027ae74cc2fc23164dc9bf7039796ac642c
f5cd6027ae74cc2fc23164dc9bf7039796ac642c
`bem decl` позволяет работать с файлами деклараций, а именно: -
02892d23ebe9be268c6d8b848428bc474d2a10dc
02892d23ebe9be268c6d8b848428bc474d2a10dc
* объединять несколько деклараций в одну
* «вычитать» декларации, то есть получать разницу между ними -
f86bda1883be176026f835a5fc750c300d8db226
f86bda1883be176026f835a5fc750c300d8db226
Для всех подкоманд `bem decl` в качестве входных деклараций (ключ `-d`) могут выступать
файлы как в формате `bemdecl.json`, так и файлы в формате `deps.js`. -
166f651c03e4603dfcbf4fbb9b3dd4db12ca11b1
166f651c03e4603dfcbf4fbb9b3dd4db12ca11b1
На выходе (ключ `-o`) всегда получается файл в формате `deps.js`. -
6d83df6a963a01dc5f71fe0d57f361db5901b437
6d83df6a963a01dc5f71fe0d57f361db5901b437
##### bem decl merge -
52c42f6ce13c3c0cb606390ee0a1cbbacf2c3a8d
52c42f6ce13c3c0cb606390ee0a1cbbacf2c3a8d
`bem decl merge` объединяет несколько деклараций в одну. Она бывает полезна в ситуациях,
когда, например, вам нужно собрать общую сборку для нескольких страниц. -
622d2b06804e97052e58d561b6422516e1717865
622d2b06804e97052e58d561b6422516e1717865
###### Создание декларации для всех страниц -
ede24c92972d66d22829794862532146cd3b2f33
ede24c92972d66d22829794862532146cd3b2f33
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 -
cd9e3b422a9ab148fcfa982ca667c4f98c6d1fae
cd9e3b422a9ab148fcfa982ca667c4f98c6d1fae
##### bem decl subtract -
23828d3dd6bc31ee7aa2e3b7a2a9953245b5f5c1
23828d3dd6bc31ee7aa2e3b7a2a9953245b5f5c1
`bem decl subtract` «вычитает» из первой указанной декларации все остальные. Она полезна
в ситуациях, когда, например, вам нужно сделать бандл, которые будет догружатся на страницу
по требованию. -
8e2466e8a8fe8e53b2cf5a077222e6c4d363ef69
8e2466e8a8fe8e53b2cf5a077222e6c4d363ef69
###### Создание декларации для подгружаемого по требованию «тяжёлого» блока -
045dfc244f01ba0b51f0c1f3cb076742c1bc3cd1
045dfc244f01ba0b51f0c1f3cb076742c1bc3cd1
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 -
ac65ade6985c6e46a1a64cfe65234c23815ad89f
ac65ade6985c6e46a1a64cfe65234c23815ad89f
##### bem make
В команде `make` реализована сборка БЭМ проектов. Узнать больше о системах сборки можно из доклада Сергея Белова http://clubs.ya.ru/yasubbotnik/replies.xml?item_no=406. -
0981a62948ce2250b6ab496a9c2e58637e6943d9
0981a62948ce2250b6ab496a9c2e58637e6943d9
`bem make` собирает проект -
cbe1aeae26fec4c4e669b476ff1b8cc6323c27f2
cbe1aeae26fec4c4e669b476ff1b8cc6323c27f2
* подключает библиотеки блоков
* выполняет сборку в уровнях переопределения
* выполняет сборку бандлов
* собирает шаблоны (`bemhtml`)
* собирает `html` из `bemjson.js`
* собирает статические файлы (`js`, `css`)
* раскрывает `@import` в `css` файлах (`borschik`)
* раскрывает `borschik:link:include` в `js` файлах (`borschik`)
* сжимает `css` файлы при помощи `csso`
* сжимает `js` файлы при помощи `uglifyjs` -
2efc3934856d11f8c029d28b29e0b32b9c260214
2efc3934856d11f8c029d28b29e0b32b9c260214
##### bem server