bem/bem-tools
-
3eb744ef85a34392e6a0a1a0602732a5cded1492
3eb744ef85a34392e6a0a1a0602732a5cded1492
bem create -b b-block -e elem -m mod -v val1 -v val2 -
91f6f0811540ccec5b2bd81220cde76ffcc4cf3e
91f6f0811540ccec5b2bd81220cde76ffcc4cf3e
#### bem build -
07c7c0bced7e429288ea3fdd2be5cf97424a5412
07c7c0bced7e429288ea3fdd2be5cf97424a5412
С помощью команды `bem build` можно собирать файлы страниц для различных технологий,
основываясь на декларации страницы. -
f23cabacd4844ae78ed4fac58b32a430337aa331
f23cabacd4844ae78ed4fac58b32a430337aa331
##### Создание файла bemdecl.js по bemjson-декларации страницы -
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`.