Хочется избавиться от написания bemjson в js файлах блоков. Учитывая, что на клиенте уже есть BEMHTML, кажется вес js не должен сильно увеличиться.
Хочется избавиться от написания bemjson в js файлах блоков. Учитывая, что на клиенте уже есть BEMHTML, кажется вес js не должен сильно увеличиться.
Затаскивание BEMTREE на клиент в простом случае сводится к добавлению
<script src="path/to/bemtree-bundle.bemtree.js"></script>
.Альтернативный вариант — пойти по пути того, как в
project-stub
на клиент попадают только указанные в депсах шаблоны. Для этого потребуется добавить полностью аналогичную https://github.com/bem/project-stub/blob/master/.enb/make.js#L64-L83 секцию про BEMTREE и потом домержить полученный бандл в клиентский JS здесь.Вес JS увеличится ровно на размер BEMTREE-бандла, так как рантайм
bem-xjst
реиспользовать не получится.Почему?
В текущей реализации классы движков BEMHTML и BEMTREE наследуются от bem-xjts и перекрывают некоторые методы.
Вот это засада...
@tadatuta Как я понял, во втором варианте на выходе получится модуль, аналогичный bemhtml.
В таком случае, Есть ли вариант не тащить в js бандл все разом, а подгрузить bemtree-модуль в рантайме, когда он понадобится?
BEMTREE-бандл — это просто JS-файл, его можно подгрузить в любой момент.