Добрый день.
Блок header
будет использоваться на всех страницах сайта. В бандлах, в файлах bemjson
каждой страницы, кажется логично указывать только сам блок, и возможно модификаторы специфичные для этой страницы. Использую project stub.
например about.bemjson.js:
/...
content: [{
block: 'header'
}]
/...
А в папке с блоком описать его структуру блока вместе с его элементами.
header.bemjson.js:
module.exports = [
{
block: 'link',
mix: { block: 'header', elem: 'logo' },
mods: {
theme: 'islands',
size: 'm'
},
url: 'https://bem.info/',
content: 'bem.info'
},
{
elem: 'nav'
},
{
elem: 'sign-up-in-out'
}
]
Но это не заработало. Посмотрел блоки из репозитария статьи создаём динамический БЭМ-проект там в некоторых папках с блоками, есть файл bemtree.js, вроде как решающий мою задачу.
в файле make.js раскомментировал строки с bemtree
bemtree.js:
block('header').content()(function() {
return [
{
block: 'logo'
},
{
elem: 'search-form'
}
];
});
Сделал так же у себя, заменив содержимое на свое - тоже не заработало.
block('header').content()(function() {
return [
{
block: 'link',
mix: { block: 'header', elem: 'logo' },
mods: {
theme: 'islands',
size: 'm'
},
url: 'https://bem.info/',
content: 'bem.info'
},
{
elem: 'nav'
},
{
elem: 'sign-up-in-out'
}
];
});
@PavelZubkov Само упоминание блока в bemjson, к сожалению, не делает импорт. Теперь нужно ещё добавить about.deps.js-файл, где упомянуть импортируемый блок.
@Realetive спасибо!