Ввиду нетривиальных конфигов enb(Возможно только для меня), не понятно как использовать BH на клиенте. Хотелось бы посмотреть примеры использования. Интересно, какова судьба BEMHTML в связи с появлением BH.
Ввиду нетривиальных конфигов enb(Возможно только для меня), не понятно как использовать BH на клиенте. Хотелось бы посмотреть примеры использования. Интересно, какова судьба BEMHTML в связи с появлением BH.
@ak-671 с точки зрения сборки есть несколько вариантов доставки шаблонов на клиент:
client.bh.js
с помощью https://github.com/enb-bem/enb-bh#bh-client-module и подключить его как обычный js-файл на страницу. Шаблоны будут доступны как модуль модульной системы:modules.require(['bh'], function(BH) { BH.apply({ block: 'b1' }) });
Судьба BEMHTML с появлением BH никак не меняется: оба шаблонизатора будут развиваться параллельно.
Спасибо, получилось собрать бандл.
Добавлю, что есть возможность подключать BH с CDN: http://yastatic.net/bh/3.2.1/bh.min.js Самую свежую версию можно узнать на http://bem.github.io/bh/
@mishanga Т.е. BH мы можем подключать, а i-bem нет ;-(
@zxqfox будет, будет i-bem! «у нас есть задача про это» :)
@tadatuta И прям без модулес тоже?
@zxqfox разве сложно завернуть весь код в
?
@tadatuta на новых проектах, естественно, нет, и мне самому нравится асинхронный провайд и ym. Но упираемся в старые проекты и ограничения по времени. А вдруг что-то не заработает? Это потребует еще больше времени. В итоге, просто откладывается на неопределенный срок. И ситуация как в анекдоте с серебряной ложечкой: «Ложечка потом нашлась, но осадочек остался».
@zxqfox нас не хватает на поддержку бесконечного количества старых версий и построение нового дивного мира :( поэтому ответ такой: если есть необходимость собрать и захостить где-то старый
i-bem
изbem-bl
, каждый желающий может положить его себе на свой сервер.@tadatuta Вроде же можно новый собрать без modules. В крайнем случае таким нехитрым путем:
upd: Хочется новый, прост. Но чтобы была возможность использовать без modules.
p.s. Я попробую собрать, не думаю, что там будут big troubles
@zxqfox можешь подробнее рассказать, где это реально нужно?
Хочу заметить, что BH выложен без требования modules.
если я правильно понимаю, то для всех этих случаев проблема не техническая, а просто лень написать обертку из modules.require и закрывающих скобок в конце?
@tadatuta Если 80% потребителей спотыкаются об это — думаю, что проблема техническая ;-)
Чтобы начать пользоваться библиотеками — нужен довод. Довод — это решение каких-то проблем или прикладных задач. Если чтобы воспользоваться библиотекой у человека возникает ряд новых проблем — пользоваться он ею врядли начнет. И именно для уменьшения порога входа нужны простые шаги, чтобы не пришлось прыгать через пропасть непонимания и теряться в этой пропасти целиком. А сейчас так получается, что человек хочет решить одно, а ему приходится еще и сборку настраивать, и куча всего всего, с чем он никогда не работал.
Банальнейший пример — любой php друпал или вордпресс, где мы все наверстали по бэму, но пользуемся jquery и материмся на
__
.То есть, человек делает шаг, и дальше видит: поставь nodejs, скачай систему сборки, настрой её, теперь еще и разберись с modules (как ты говоришь, напиши обертку modules.require и закрывающие скобки), и уже тогда получи какой-то более мощный профит.
@zxqfox Да ладно тебе, modules не сильно отличается от requirejs по сути, который всем давно знаком. И настраивать сборку, чтобы пользоваться i-bem, не нужно.
@apsavin Я говорил про 80% ;-) Но есть же еще 20% других?
upd: В любом случае, зачем нужна эта пропасть, когда можно пошагово переходить? И старые проекты переводить.
@zxqfox куда тебе ставить лайки за комменты? :-)
Ребята, то, что просто и кажется естественным для одного — сложно и чуждо для другого. Технология не может получить широкую популярность, если на пути к ней надо преодолеть дюжину препятствий.
@tenorok :-D лучшие лайки — коллективным трудом!
@tadatuta, @zxqfox дело говорит. Нам действительно надо сильно упрощать порог входа. Сейчас получается, что ты или не знаешь ничего, или знаешь всё. Начать пользоваться с наскоку — невозможно. А нужно, чтобы было возможно.
Ноутбук и планшет могут решать схожие задачи, но при этом планшетом может начать пользоваться двухлетний ребёнок без инструкции и помощи взрослых, а ноут он даже открыть не сможет.
Не все дети одинаково ноутбукооткрывательны ;-)
Vitaly Harisov пишет:
@vithar как звучит конкретное предложение в данном случае? поддерживать n * 2 версий
bem-core
бесконечно долго?@tadatuta может быть сделать сборку бандла со всеми кусками i-bem и в конец добавить что-то типа modules.require('i-bem', function (BEM) { window.BEM = BEM; }) ? ну очень грубо.
@tadatuta, если на секунду представить, что
i-bem
это просто модуль, а не блок, то логично от него ожидать, что он будет провайдиться во все модульные системы, которые найдёт, а если не найдёт, то будет провайтится в глобальный скоуп.@andrewblond отличная тема
Вощим усё сводится к тому, что надо просто взять и сделать. ;-)
@zxqfox, нельзя просто так взять и сделать =)
Для этого надо полностью пересмотреть подход к написанию модулей. Т.е. использовать не синтаксис
ym
, а что-то более абстрактное, например модули изes6
, а при сборке превращать в обёртки, которые провайдят в нужные модульные системы, или глобальный скоуп, или во всё сразу.