Касательно стилей mustDeps - гарантированное нахождение блока до текущего; shouldDeps - просто включение в сборку
Нормальная ли практика - в *.deps.js файле блока указывать зависимости от его элементов и модификаторов?
Для того, чтобы подключать этот блок в депсах другого одной строкой { block: 'b1' }, а не перечислением всех необходимых модификаторов данного блока. И для того, чтобы неиспользуемые на песочнице модификаторы backend уже на свое усмотрение мог юзать.
Да, это нормальная практика.
Если элементы/модификаторы описаны в отдельных файлах, то, чтобы они при сборке попали в бандл, необходимо перечислить их в deps.js какого-нибудь блока или в декларации бандла.
Если решение об их использовании принимает родительский блок (опциональные элементы/модификаторы) то можно указать их в deps.js родительского блока. Если элементы/модификаторы расположены в отдельных файлах, но нужны всегда, то можно добавить их в deps.js их блока или в декларацию бандла (в зависимости от задачи).
@dima117 спасибо) на примере стилей: по идее, если поставить блоку mustDeps от его модификатора, не подгрузится ли css модификатора выше стилей самого блока? Т.е. стили модификатора не применятся? И где будет находится css модификаторов/элементов при shouldDeps?
именно так и произойдет.
применятся, но стили блока будут иметь больший «вес», поэтому при совпадений свойств будут перекрывать стили модификатора.
При отсутствии каких-то дополнительных факторов — будут идти после стилей блока.