bem/bem-tools
-
8d0abf779fa227eb94ac3cfe1a0a842194328920
8d0abf779fa227eb94ac3cfe1a0a842194328920
bem build \
-l bem-bl/blocks-common -l bem-bl/blocks-desktop \
-l blocks -l pages/index/blocks \
-d pages/index/index.bemjson.js -t bemdecl.js \
-o pages/index -n index -
a1604ac9fb0b0e29524c55dccba9e6d824fc57f9
a1604ac9fb0b0e29524c55dccba9e6d824fc57f9
Значением флага -t может быть как название технологии, так и полный путь до модуля
технологии. В этом модуле указано, как именно по декларации собирается конечный файл. -
2b6676ec898b885655dd762fd1e1881ed11d7a9c
2b6676ec898b885655dd762fd1e1881ed11d7a9c
Например, модуль для `deps.js`: https://github.com/bem/bem-tools/blob/master/lib/techs/deps.js.js -
6fed2e84837e9c25375661efd2d11a634972f412
6fed2e84837e9c25375661efd2d11a634972f412
##### Создание файла deps.js по bemdecl.js -
de4d578b8acf0f352fd5323832dde45758ddd476
de4d578b8acf0f352fd5323832dde45758ddd476
bem build \
-l bem-bl/blocks-common -l bem-bl/blocks-desktop \
-l blocks -l pages/index/blocks \
-d pages/index/index.bemdecl.js -t deps.js \
-o pages/index -n index -
6833428ed0809381b3f9e450f306aad438d8d5b2
6833428ed0809381b3f9e450f306aad438d8d5b2
###### Создание js и css файлов страниц по deps.js -
2236da40cf47f5ed3a6a5514b81819e71f07488b
2236da40cf47f5ed3a6a5514b81819e71f07488b
bem build \
-l bem-bl/blocks-common -l bem-bl/blocks-desktop \
-l blocks -l pages/index/blocks \
-d pages/index/index.deps.js -t css \
-o pages/index -n index -
fe6172e7f33b9ac30c0ff81561c9022e9517c552
fe6172e7f33b9ac30c0ff81561c9022e9517c552
bem build \
-l bem-bl/blocks-common -l bem-bl/blocks-desktop \
-l blocks -l pages/index/blocks \
-d pages/index/index.deps.js -t js \
-o pages/index -n index -
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