Хочу настроить новый проект с использование bem-tools для того что бы лучше понимать как это работает. Для начала делаю так:
$ mkdir project && cd $_
$ npm install bem --save-dev # или npm install bem@unstable --save-dev
Хочу делать блоки в blocks, страницы в pages, собирать блоки отдельно с использованием модивикаторов и меть возпожноть собрать результата в release получается такя структуры проекта:
project/│├── blocks/│ └─ block/│ ├── block.png│ ├── block.bemhtml│ ├── block.js│ └── block.css│├── pages/│ └─ index/│ └── index.bemjson.js│├── tests/│ └─ block/│ ├── block.js│ ├── block.css│ ├── block.html│ └── block_mod.html└── release/├── js/├── css/├── images/└── index.html
Что надо сделать и что прочитать, что бы этого добиться?
http://ru.bem.info/
https://github.com/bem/project-stub
По умолчанию блоки кладутся в desktop.blocks, а страницы — в desktop.bundles, настроить это можно в https://github.com/bem/pr
bem make результат всегда будет собирать в папку каждой конкретной страницы либо в merged-bundle (подробнее см. http://ru.bem.info/tools/
Перекладывать результаты в release можно, например, с помощью grunt.
Для того что бы начать создавать блоки это верный путь, но задача понять как настраивать.
Возможно используя исключительно команды bem-tools настроить проект?
Пока такая возможность не очевидна:
результат:
до появления генератора возможности создать полностью настроенный проект без написания конфигов руками нет.
если есть задача разобраться с настройкой, то опять-таки стоит взять project-stub и прочитать все файлы, которые в него входят (их там не так много и про них более-менее есть описание на http://bem.info/). в частности там уже есть пример make.js, на отсутствие которое ругается bem в вашем примере.
если в процессе будут появляться какие-то конкретные вопросы — можно их задавать в виде новых постов в клубе.
Правильно ли понимаю эта документация актуальна для bem-tools версий 0.7.X и поддерживается версией альфа, но для для технологий и сборки по v2 нет дока или есть?
создавть новые темы на конкретные вопросы — возьму на вооружение
В этой теме остался не освещенный внимание вопрос:
Как собирать блоки отдельно с использованием модивикаторов?
Не уверен, что я правильно понял по поводу v2, но если речь о быстрых технологиях сборки, то они в документации освещены: http://ru.bem.info/tools/
Модификаторы на файловой системе кладутся внутрь папки блока либо элемента, к которому относятся. Папка должна начинаться с подчеркивания. Например, для блока myblock с модификатором mymod в значении someval (myblock_mymod_someval) структура будет такая:
Чтобы создавать эту структуру с помощью bem-tools, можно использовать команду bem create. Для примера выше получится bem create -b myblock -m mymod -v someval -T css -T js -l desktop.blocks
Чтобы css, js (или любые участвующие в сборке технологии) этого модификатора попали в сборку бандла (страницы) необходимо, чтобы модификатор либо был упомянут в страничном bemjson.js-файле, либо в deps.js-файле какого-либо блока, указанного в bemjson.js-файле.
Собираются они с помощью https://github.com/narqo/bem-pr (в README есть описание).
Важный момент, который необходимо учитывать — это то, что в bem-components внедрен CSS-препроцессор roole (в сборку по зависимостям, кроме css, попадают также *.roo файлы) и autoprefixer.
Делаю генератор для yo на основе project-stub тут. Круто было бы поучавствовать в вашем. Мой сырой, я только начал, но пробовать можно.
+ Круто!
Попробовал в linux все ок, в windows есть проблемы, отчет:
при установке npm зависимостей варнинг:
это не понятно, но немешает установиться зависимостям.
https://github.com/verybi gman/generator-bem/issues /14
И ошибка при создании директорий при сборке grunt:
Под виндой не пробовал. По-моему сейчас и bem-tools не совсем корректно работает по виндой, поправьте если ошибаюсь. Но если это так, смысл собирать проект под виндой теряется, так как с блоками вы работать посредством тулзов не сможете. Issue принял, спасибо, буду разбираться!
Сорри, посмотерел подробнее ошибку. Она связана с тем, что для создания директорий используются никсовые утилиты. Думаю, это возможно побороть.
под виндой тулзы работают, не решаемых проблем не было
значит сделаю без проблем