Рассмотрим 3 случая merged-сборки проекта в режиме watch: 1 - изменение бандла (bemjson) 2 - изменение css, js шаблона 3 - изменение самого шаблона (bemhtml)
При изменении бандла все просто, запускается enb-make и далее все происходит автоматически. А вот как быть при 2 остальных случаях? Не хотелось бы пересобирать весь проект при изменении одного блока, который используется в 2 бандлах, к примеру, из 50.
Как вариант: можно проходиться по депсам бандлов, сравнивать с измененным и уже от этого исходить. Но может есть уже какое-то готовое решение? Заранее спасибо.
@Trusow именно для случая, когда есть много бандлов, был придуман разработческий сервер (
enb server
) — он пересобирает только то, что нужно для текущего открытого в браузере бандла.Другим вариантом решения могу стать «обратные депсы» — когда при изменении
b1.css
вычисляется, на какие блоки это могло повлиять и, соответственно, какие из бандлов следует пересобрать. Проблема лишь в том, что пока эта схема не реализована (работа ведется в рамках https://github.com/bem-contrib/bem-deps).enb-server пересобирает только текущий открытый в браузере бандл? Если так, то мимо. А если таких бандлов 15 из 250? Не все же 15 открывать. А есть инструмент, который проходит по депсам бандлов и находит соответствие с измененным блоком? Вот к примеру, изменился b1.css ( я узнал это через watch), соответственно изменился блок "b1". Я отдаю инструменту уровень бандлами и название блока, а он выводит список бандлов, которые я уже отдаю сборщику?
А зачем пересобирать бандлы, которые не открыты в браузере?
apsavin, просто ситуация. У вас крупный проект, на котором 100+ шаблонов, на 10 из них используются какая-то уникальная кнопка. Вы изменили внешний кнопки через bemhtml. По-вашему - обновили 1 страницу, она пересобралась. Мне же нужно, чтобы при изменении кнопки пересобирались только те бандлы на которых она используется. Чтобы ничего не обновлять в браузере.
Я не понимаю, зачем пересобирать страницы, если на них в данный момент никто не смотрит. Смотрит разработчик обычно на одну страницу, она у него открыта в браузере.
Я понимаю, что вам нужно. Я не понимаю, зачем.
@Trusow Эту задачу в том числе будут решать обратные депсы, когда они сойдутся.