Если в lib1
и в lib2
есть блок с одним и тем же названием button, есть ли способ у себя на проекте использовать блоки из обеих библиотек? Например, lib1/button
и lib2/button
.
Такой вопрос уже задавали здесь https://ru.bem.info/forum/-234/, но ответов я не увидел.
Со стилями будут проблемы. Из коробки это не разруливается.
Можно добавить в сборку добавление какого-нибудь префикса к классам
@melihovv теоретически, если дописать правильный
bem-mv
, то можно договориться до специальной декларации подключения библиотекlib-decl.js
, где будет что-то типа (фантазирую, ничего такого в природе не существует):и тогда на момент установки библиотеки тул проитерируется по этой декларации и позовет
libDecl.entities.forEach(entity => bemMv(entity.block, entity.as))
.Но по факту написать такой
bem-mv
весьма нетривиально, т.к. мало просто переименовать все файлы блока и поправить все вхождения в файлах блока во всех технологиях. Потребуется еще во всех остальных файлах данной библиотеки переименовать все упоминания данного блока в разных технологиях.В принципе, когда, наконец, сойдется история про построение обратных депсов, задача будет теоретически решаема, но опять же, при условии, что пользователь не делает чего-то странного с именами блоков в своем коде: