Дзен BEM: где держать .bemjson?

Добрый день.

Познаю дзен БЭМ'а. Очень хочу осознать, как правильно должен декомпозироваться BEMJSON между бандлами и блоками используемыми этим бандлом.

Чтобы было максимально понятно о чем идет речь, приведу конкретный пример.

Пример:

У нас есть два бандла.
Каждый из бандлов содержит на странице блок со следующей структурой (BEMJSON этого блока):

{
    block: 'b-menu',
    content: [
        { elem: 'caption', content: 'Заголовок меню' },
        { elem: 'button', content: 'Кнопка в меню' }
    ]
}


Где должен находиться этот BEMJSON, в папке блока, или в .bemjson файле каждого из бандлов?

Можно ли вообще собирать BEMJSON бандла указав в нем названия только используемых блоков (в иерархии), и не описывая их контент?
  • Вопрос задан
  • 977 просмотров
Решения вопроса 1
qfox
@qfox
Ответы есть у меня
В bemjson описывается структура в блоках/элементах и данные страницы, бандлы — это, суть, ваши страницы.
Кажется, теперь очевидно, что bemjson нужно класть в папки бандлов.

Для чего он нужен? Для того, чтобы знать как собирается страница и из чего она состоит. Фактически, из этого файла собираются все артефакты, а процесс сборки выглядит так:
1. Собираются все названия блоков и элементов, описанных в файле bemjson;
2. Из блоков собираются файлы *.deps.js и общий список нужных файлов дополняется блоками из этих файлов, и таких же файлов этих блоков (рекурсивно);
3. Полный список файлов записывается как bemdecl.js;
4. Собираются все описанные в сборке технологии (файлы js/css/шаблоны);
5. Если сборка была из bemjson — генерируется еще и html из bemjson и шаблонов (иначе — просто шаблоны);
6. Минификация и обфускация css/js файлов (или же еще и компиляция less/stylus/sass в css, es6/coffee в js, etc.).

Как-то так)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы