Очень давно пишу боевые проекты на БЭМ-нейминге. Недавно посоветовали начать использовать БЭМ в полном стэке с шаблонизатором bemjson и enb. Курю мануалы яндекса и вроде бы ясно, только вот один момент я упускаю.
Правильно ли я понял логику?
Есть desktop.bundles. Там хранятся шаблоны страниц в json формате.
Есть desktop.blocks. Там хранятся блоки и их элементы. Точнее их javascript и css.
Я создал страницу, написал самую простую разметку хедера. В desktop.blocks создал header, положил туда header.styl.
В странице подключил header.css, который по идее должен упасть мне в desktop.bundles. Но почему-то не компилируется и не падает. Хотя в .enb/make.js конфигурация enb-stylus точно верная. Ошибок в консоли нет. Кроме того, enb говорит:
17:16:18.369 - build finished - 121ms
----- /desktop.bundles/page/page.html 134ms
17:16:18.426 - build started
17:16:18.435 - build finished - 12ms
----- /desktop.bundles/page/header.css 12ms
Вот только /desktop.bundles/page/header.css в результате нет. Он не создаётся. В консоли браузера ошибка /desktop.bundles/page/header.css 404 not found.
Помогите разобраться - как правильно подключать в bemjson стили и скрипты к странице?
После прохождения стать должно стать понятнее, а по вопросам которые статья не раскрывает полностью обязательно можно найти материал подробного описания.
В принципе всё круто и понятно, только не понимаю где правильно хранить частоповторяющиеся вещи, которые по сутя не являются компонентами. Напиример layout-grid. Или переменные с цветовой гаммой и стандартными отступами, ширинами колонок итп. Сейчас я создаю в styles каталог core и туда кидаю подобные сущности, используя sass extend %layoutClassFromMixin. Но на каком уровне переопределения держать их в project-stub не очень ясно. Точнее ясно что в common.blocks по идее, так как они повторяются в каждом новом проекте. Неясно как их наследовать, не забивая bemjson лишним классом. То есть чтоб он видел elem: 'plate', например, и кидал на неё стили layout сразу.
Технология супер, описывать так проекты - просто блеск. С каждым новым проектом у тебя появляется своя небольшая библиотека компонентов, которую можно без труда перенести в следующий проект. Даже про sass можно забыть с плагином postCSS pobem. Вообщем рульно, но тяжелее чем кажется на первый взгляд. И декларативное описание поведения элементов на javascript тоже мне не особо ещё понятно. я хочу jQuery))) он привычнее
Никита Кит: Слишком много вопросов и сразу, ответить сложно. Эффективно подходить к формулированию вопросов так же как мы пишем программы, разделять и делать мене связанными.
Не вижу причин не сделать layout-grid компонентом, хочешь jQuery нет препятствий.