Спецификации технологии bundle находятся в процессе разработки. Для получения детальной информации пишите на форум.
Не расскажите планов?
Спецификации технологии bundle находятся в процессе разработки. Для получения детальной информации пишите на форум.
Не расскажите планов?
// @andrewblond
@Guria Все, что я могу сказать — это то, что технологии для сборки лежат тут, а те технологии, которые по документации должны быть рядом, а их нет, уехали в https://github.com/enb-bem/enb-bem-techs/
@zxqfox Леша, тебе удалось завести
bembundle
? Поделишься достижениями?@Guria @tadatuta Не очень удалось. Что-то собирается, но не то, что хочется. Логика сборки не ясна до конца — по мне было бы логичнее создать отдельный уровень для бембандлов, но нет, там работает иначе.
Отписывал в https://ru.bem.info/forum/issues/314/ ;-)
https://github.com/enb-make/enb-bembundle
@zxqfox если я правильно понимаю (не факт, т.к. сам не использовал), то логика там такая: собираем декларацию «любым удобным способом», по которой затем строим js-бандл, включающий сразу css+js+шаблоны, а при загрузке этого бандла с помощью https://ru.bem.info/libs/bem-core/v2.6.0/desktop/loader/#type_bundle он автоматически правильно аппендится на страницу.
Поэтому (если то, что я выше написал, правда) нет смысла выносить что-то на отдельный уровень.
У меня было то, что декларация должна лежать в соседнем бандле, и никак иначе. И все, что мы оттуда вырезаем, тоже явно в конфиге прописывается, получается, что постоянно надо будет ходить в конфиг. Нелогично, как-то.
А в отдельном уровне можно было бы добавить хитрых технологий, с описанием что берем за основу, что режем, и пр. Т.е. то, что сейчас явно глобально в конфиге прописывается.
@zxqfox я не уверен, что понял твою задачу. если расскажешь подробно, готов попробовать помочь.
@tadatuta Да задача-то была обычной — есть блок (или несколько), у меня даже вырезать ничего не надо было. ;-) Но чтобы собрать бандл — мне приходилось описывать в отдельной папке bemjson/bemdecl, и в конфиге явно натравливать:
я все еще не понимаю, какая этому по твоей задумке должна быть альтернатива — на основе чего иначе ты хочешь собрать бандл?
Например, на основе bemdecl из
desktop.bembundles/*
. Передавать папку бандла как параметр для сборки — как-то не очень. Я не вижу смысла смешивать бандлы обычных страниц (desktop.pages/*
), которые можно посмотреть, потому что там естьbemjson
, и бандлы для динамики, которые посмотреть нельзя, потому что они всегда более полные.Если представить эту папку с бандлами как уровень с блоками, то там могут быть:
merged
бандл из всех используемых в*.pages/*
;dist
бандл из всех доступных блоков на локальных уровнях;common
, в состав которого входят блоки с наибольшим числом вхождений, или как-то еще;bemdecl
/bemjson
, и с вырезанием из нихcommon
.И js-бандлы отличаются от
merged
/dist
/common
, они как бы next-level. Если первые удобнее описывать исходя из каких-то уровней, например, из бандлов*.pages
, и это можно сделать руками, то js-бандлы удобнее собирать из заготовленных common/dist, и в конфиге перечислять их не очень удобно — конфиг разрастается, а смысла мало. Разве что, какconfig.nodes('*.bembundles/*',
, и с передачей туда каких-то технологий скопом, которые что-то знают проcommon
/dist
/merged
/etc, и умеют читать из настроек этих бандлов какие доп. блоки, которые могут быть им нужны (т.е. какой-тоbemdecl
, и нечто, описывающееnoDeps
для сборных бандлов).Основная мысль, что технологии
bembundle
должны работать с наборами на следующем уровне абстракции, иначе смысл замыливается. И для этого нужны списки этих наборов для явного указания что включаем, что вырезаем.Конфиг в этом случае будет примерно такой.
Т.е. мне хочется чуть больше гибкости на уровне бандлов, хочется кроме bemdecl что-то вроде deps для бандлов из бандлов, чтобы я там мог noBundleDeps указать, например.
Merged бандл, технически, тоже можно будет из этого собирать вполне вменяемо — указываем что брать за исходный уровень, собираем оттуда bemdecl, склеиваем их (по умному), собираем сам бандл. Главное — как можно меньше магии.
если я тебя правильно услышал, то
верно?
Плюс-минус да, если enb-bembundle 100% работает. Я так и не смог его проверить — не осилил конфиги и решил не рисковать, нужно было срочно.
Я понял.
/cc @blond