Существует элемент 'icon' блока 'button' с модификатором 'close'
common.blocks/button/__icon/_close/button__icon_close.styl
--- технология CSS
в index.bemjson.js блок выглядит таким образом:
{
block : 'button',
mix : { block : 'sitemap', elem : 'button' },
attrs : { title : 'Закрыть меню' },
icon : {
elem : 'icon',
elemMods : { close : true }
}
}
Стили модификатора не собираются. Как и стили элемента button__icon
. Замена 'icon' на 'content' - не помогает.
Особенность данной проблемы: на одном компе всё собирается, на домашнем - нет. На домашнем вчера обновлял модули связанные с БЭМ-методологией. Что именно обновлял - не помню. Переустановка с полной чисткой проекта - не помогла.
Народ, если ошибки нет - помогите разобраться в чем проблема. Может уже кто-нибудь сталкивался?
@DjonyBastone зависимости по полю
icon
из BEMJSON-файла автоматически не подхватятся, только из поляcontent
. Так что следует добавить deps.js-файл. Но тот факт, что заменаicon
наcontent
не помогла — похоже на баг. При этом буквально недавно был исправлен баг про то, что при наличии микса терялся контекст элементов, но опять-таки, если проблема воспроизводится на свежей установке, по-идее дело не в этом.В общем, чтобы мочь разобраться и исправить, нужно суметь воспроизвести. Есть возможность запушить на гитхаб форк
project-stub
с кодом, на котором можно было бы поисследовать проблему?Верно ли я сделал... Pull request - сделал.
На голый project-stub поставил свои зависимости gulpfile. Скопировал свои файл, причастные к данной проблеме.
Попробовал собрать, результат - тот же
button__icon_close
в сборку не попадает.icon
наcontent
— попало в сборку.sitemap__heading
, так что создалcommon.blocks/sitemap/__heading/sitemap__heading.deps.js
с и сноваbutton__icon_close
в сборку попало. Так что все в порядке, просто не хватало депсов.Я пробовал прописать deps.js к button. Не работало. По документации deps пробовал сделать, не хватает там жизненных примеров.
Спасибо Володя...
У нас не так давно появилась полная спека: https://ru.bem.info/platform/deps-spec/ По-идее ее должно хватать для любых кейсов.
Да, как раз про эту документацию говорил. Семантика и грамматика DEPS - по спецификации понятна. Даже без ошибок написал код по документации. Провал с применением. Буду говорить от своего лица, но мне кажется что порог входа в БЭМ зависит от логики применения.
Жизненные примеры!? Это о том, что в дополнение: параграф документации было бы не плохо заканчивать примером в виде:
1) Существует кнопка меню, в себе содержит текст и иконку. Текст и иконка в BEMJSON представлены элементами.
BEMJSON:
Структура блока:
HTML:
В данном примере потребуется явно указать наличие модификатора для сборки его технологий, в родительском блоке где расположен блок 'button'
common.blocks/menu.deps.js
необходимо описать зависимости:Результатом deps.js будет - сборка технологий элемента
__icon
и модификатора_close
2) По технологии JS тоже бы примеров на подобии. Что внутри капсулы понятно, нет вообще вопросов. А взаимодействием этих капсул между собой в примерах, можно было бы резюмировать документацию по каждому блоку.
Конечно это большая работа, и требовать что то из этого не в праве. Ребята, у вас крутая технология и чем больше народу будет вовлечено, тем лучше для вас и всех кто вовлечен.
Я вообще занимаюсь внедрением информационных технологий в строительстве промышленных зданий нефтегазовой сферы. Ситуация аналогичная:
У вас методология и некоторые инструменты бесплатны, в отличии от ТДМС ))))) Но порог входа высок. Вы очень много делаете для вовлечения человеков, большая благодарность. Но вот если методология будет описана на пальцах - для особенно одаренных как я, то мир станет немного лучше. Ну и на вас спрос будет выше))
Про основную мысль полностью согласен, но по частностям есть что ответить :)
Помимо спецификации депсов, где описаны все возможные поля, есть документ, описывающий суть с жизненными примерами: https://ru.bem.info/platform/deps/
Существуют и просто туториалы по созданию простых вещей целиком, как в текстовом виде https://ru.bem.info/platform/tutorials/, так и в форме докладов или вебинаров.
Многие конкретные кейсы были рассмотрены на форуме.
Конечно, впереди еще много работы и мы ее не планируем прекращать. Но во многом она скорее про то, чтобы предоставить удобный способ найти уже существующую информацию, обновить устаревшую или описать только-только появившиеся новые продукты. И в этом мы очень надеемся на помощь сообщества. Как минимум в виде сигналов: где непонятно, где опечатки и т.п.