Closed dfilatov closed 10 years ago
cc @arikon @vithar
@dfilatov у меня есть пара вопросов по использованию модульной системы:
undefined
. при этом сущностью всегда являлся `i-bem__dom, а стектрейс указывает на внутренности модульной системы. найти реальное место с проблемой оказывается сложно. верно ли я понимаю, что при внедрении описанной системы проблема автоматически отпадает?@dfilatov Это можно портировать в bem-bl
?
@tadatuta
@arikon Портировать что именно? Модульной системы нет в bem-bl.
@dfilatov
@dfilatov Как будет выглядеть описание зависимости блока от другого блока? Или все блоки по-прежнему будут декларироваться в модуле i-bem__dom
?
@tadatuta без внедрения асинхронной инициализации bem-блоков это, по-моему, невозможно. Но, что касается конкретно твоего примера с тяжелыми модулями, которые на данной странице не используются -- их всегда можно не в deps'ы записывать, а реквайрить только в нужные моменты:
modules.define({ block : 'map-viewer' }, ['jquery', ...], function() {
provide({
onSetMod : {
'js' : {
'inited' : function() {
modules.require(['ymaps'], function() {
// do map init
});
}
}
}
});
});
А еще, common-бандлы -- это зло ;) Разбивай все на bem-бандлы, загружай в нужные моменты и не будет ничего лишнего: ни загрузки неиспользуемого кода, ни его инициализации.
@arikon Нет, все bem-блоки -- самостоятельные модули в модульной системе. Модули для модификаторов додекларируют модуль основного блока.
See #429 for new details
See #429 for new details. Information below is outdated.
It allows us to write less code and looks more logical in terms of YModules.
before:
after: