Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
1. нужен сборщик для проекта — собирать картинки, css, browserify, вот вам enb, bem-tools вместо gulp, grunt.
2. нужна модульная система — конечно, вот вам ymodules вместо commonjs, es6 модулей и systemjs.
3. нужен шаблонизатор — bh, bemtree, тысячи их в разных вариациях.
До сих пор сборка БЭМ проекта основывается не на модульной системе, а на конвенциях, как располагать блоки, элементы и модификаторы на файловой системе с _ и __. Это жутко неудобно.
Стек на данном этапе больше нацелен на рендеринг на сервере и добавление динамики ручками через клиентский js
Когда ты разворачиваешь свой первый БЭМ-проект у тебя в папке генерируется куча кода от шаблонизаторов, куча разных конфигов и ты просто не знаешь куда смотреть, что править, чтобы простой hello world завести, когда технология уже сгенерировала за тебя кучу кода.
Однако есть движение в сторону поддержки популярных сборщиков.
Если вы знаете open source аналоги «богаче по фичам», поделитесь, пожалуйста.
Тут на вкус и цвет, конечно. Но нельзя упускать важный момент — сборка по файловой системе позволяет полностью консистентно собирать любые технологии: от CSS до тестов и документации.
Стек на данном этапе больше нацелен на рендеринг на сервере и добавление динамики ручками через клиентский js
Это ошибочное утверждение
Когда это движение дойдет до продакшна и до уровня официальных библиотек Лего
Сейчас насколько я знаю большинство БЭМ-библиотек завязано на формат модулей ymodules, что делает их сразу же несовместимыми ни с commonjs, ни с amd из коробки
Каждой задаче свой инструмент.
когда БЭМ-стек будет изоморфным из коробки и уметь быстро рендерить на клиенте с использованием Virtual DOM без лишних прослоек
я вижу свой формат описания веб-страниц в виде BEMJSON, а не использование нативных конструкций языка
Пользователи официальных библиотек Лего должны быть в курсе, как донести свои пожелания. И не секрет, что приоритеты команды БЭМ формируются именно на основе фидбека ;)
Да, из коробки модули несовместимы. Но странно использовать что-то, что по по определению не решает наши задачи, только потому, что кто-то успел привыкнуть к плохому )
Разве не удобнее, когда для задачи сборки любой технологии компонента используется один инструмент по одним правилам?
Но эксперименты про это тоже делаются: github.com/dfilatov/bem-components-react
Но с точки зрения языка BEMJSON — это просто JS-объект.
Правильно ли я понимаю, что на поддержку альтернативных сборщиков просто не было пожеланий, поэтому их поддержка не входит в приоритет команды?
Т.е. commonjs модули это что-то плохое?
сейчас технологии для сборки bundle, bemhtml, bemjson жестко связаны со сборщиком enb? и нет отдельной технологии, которую можно было бы адаптировать под любой сборщик?
Проект де-факто мертвый. Это было экспериментом по пробе реакта и насколько я знаю он был сразу же заброшен и дальше не развивается.
ты можешь использовать все возможности Javascript, а в BEMHTML не можешь.
Нет, конечно. И они благополучно используются там, где их возможностей хватает.
В текущей реализации — да. Но эксперименты на этом не прекратились. Сейчас dfilatov, veged и Вова Варанкин думают над развитием этой идеи.
зачем тянуть еще один формат модулей в OpenSource?
Есть ли в этом смысл после github.com/facebook/react/issues/3228?
Манипулирование БЭМ-структурой с помощью Bemy