Open kompolom opened 9 years ago
bemdecl генерируется, потому что ты подключаешь bemjsonToBemdecl и у тебя есть bemjson.js файл.
Если убрать bemjson.js — надо будет убирать и bemjsonToHtml, потому что в этом файле еще и контент для страницы.
Т.е. убираешь bemjsonToBemdecl, убираешь технологию и таргет html, и в бандлах вместо bemjson сохраняешь bemdecl.js файлы.
Вроде все так и есть, может что то пропустил? https://gist.github.com/kompolom/bc610150fb509b5f8c0b#file-make-js
вываливается с ошибкой
Error: There is no tech for target desktop.bundles/index/index.bemdecl.js.
А, ну да, надо еще запровайдить bemdecl путем его чтения. enb такой enb.
https://github.com/enb-bem/enb-bem-techs#bemjsontobemdecl
[provide, { target: '?.bemdecl.js' }],
По идее так должно работать.
Призову на всякий @blond.
@zxqfox всё так ;)
Технология для провайда — https://github.com/enb-make/enb/blob/master/techs/file-provider.js
@zxqfox, спасибо, так завелось.
а bemdecl
компактней чем сгенерированный из bemjson
можно как то писать?
@kompolom Не подскажу ;-(. Может быть @blond или @tadatuta что-то порекомендуют?
@kompolom Вообще, технически это же JS, и если имеется ввиду:
module.exports.blocks = [
{ name: 'block1' },
{ name: 'block2' },
{ name: 'block3' }, // etc.
];
По формату, опускаемым частям — не уверен, что можно.
@kompolom, если руками, то можно.
Вкратце формат BEMDECL v1 можно описать так:
exports.blocks = [
{
name: 'input', // имя блока
mods: [ // список модификаторов
{ name: 'size', // имя модификатора
vals: [ // список значений модификатора
{ name: 'm' }, // значение модификатора
{ name: 's' } // значение модификатора
]
}
],
elems: [ // список элементов
{ name: 'control', // имя элемента
mods: [ // список модификаторов элемента
{ name: 'theme', // имя модификатора элемента
vals: [ // значения модификатора элемента
{ name: 'islands' } // зачение модификатора элемента
]
}
]
}
]
}
];
Подскажите как настроить
enb
на сборку динамического сайта, так, чтобыbemdecl
не генерировался при каждой сборке. Хочу руками прописать туда нужны блоки.