Всем привет!
Хочу нести в массы БЭМ методологию и только bem-core в качестве front-end фреймворка (в основном из-за i-bem). Отсюда вопросы: 1) Есть ли готовые сборки bem-core? Если нет, думаю, собрать bem-core в один JS файлик и распространять как bower-пакетик, периодически синкая с bem-core. 2) Также хочу заменить ymodules на AMD, т.к. ни один пакетный менеджер не имеет поддержки ymodules. Думаю использовать webpack, у него тоже есть поддержка асинхронного инита. Может уже есть такое? 3) Есть ли примеры использования i-bem без enb и вот этого всего? Если нет — буду писать.)
Привет!
Есть, см. https://ru.bem.info/forum/469/
Это будет крайне непросто, AMD уступает
ymodules
в возможностях. См. https://ru.bem.info/tools/bem/modules/#Почему-не-amdВ будущем планируется завернуть ymodules в ES-модули (https://github.com/bem/bem-core/issues/1109).
Под «этим всем» подразумевается сборка? Тогда любой проект в продакшене — это пример использования i-bem без ENB ;)
Спасибо, Владимир, за скорый ответ! Буду разбираться.)
А не подскажите, где входная точка сборки
bem-core.dev.js
? Я бы хотел из сборки убрать pointer-events, fastclick и еще пару блоков, но, честно говоря, там очень запутанная сборка, и я так и не нашёл, откуда начинают разворачиваться зависимости для этой цели.Вижу, что из файла
.tmp.deps.js
, но откуда он берётся?В идеале хочу оставить только i-bem и ему необходимые зависимости.
К слову, собрал, конечно, только i-bem (и оно работает!) с помощью веб-морды в https://ru.bem.info/forum/469/, но хотелось бы уметь проводить такой трюк в рамках bem-core.)
@DimitryDushkin Сборка
dist
с помощью командыnpm run dist
строит декларацию на основе интроспекции файловой системы — в сборку попадают все сущности, представленные на файловой системе.Чтобы получить кастомную сборку в ручном режиме, самый простой способ — это взять project-stub, перечислить все нужные блоки в index.bemjson.js и собрать результат.
Если хочется оставаться строго в рамках
bem-core
, то можно форкнуть и физически удалить «лишние» блоки. Либо создать бандл с перечислением необходимых сущностей в common.bundles.Ну и, наконец, вот исходники веб-морды: https://github.com/tadatuta/bem-dist-server
Спасибо! Да, использовать project-stub — вполне годное решение для такой затеи. Также интересно посмотреть исходники веб-морды.