Open kompolom opened 8 years ago
Затаскивание 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
реиспользовать не получится.
рантайм bem-xjst реиспользовать не получится.
Почему?
В текущей реализации классы движков BEMHTML и BEMTREE наследуются от bem-xjts и перекрывают некоторые методы.
Вот это засада...
@tadatuta Как я понял, во втором варианте на выходе получится модуль, аналогичный bemhtml.
В таком случае, Есть ли вариант не тащить в js бандл все разом, а подгрузить bemtree-модуль в рантайме, когда он понадобится?
BEMTREE-бандл — это просто JS-файл, его можно подгрузить в любой момент.
Хочется избавиться от написания bemjson в js файлах блоков. Учитывая, что на клиенте уже есть BEMHTML, кажется вес js не должен сильно увеличиться.