bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Как создавать бандлы под платформы? #850

Closed romanslonov closed 8 years ago

romanslonov commented 8 years ago

Доброго времени суток!

Есть несколько вопрос, на которые, к сожалению, я не нашел ответа. Как известно, в знаменитом project-stub создана папка bundles только для desktop, так вот:

1) Как сгенерировать bundles для touch-pad, например? 2) Слышал в одном из докладов, что у вас есть детектор для определения платформы, можете кинуть пару примеров его использования?

Еще один вопрос, заодно: 3) Опять же в одном из докладов слышал про "тулзу", которой скармливаешь bemjson, а она на его основе генерирует папки блоков и элементов. Как она называется?

Спасибо.

tadatuta commented 8 years ago

1) Как сгенерировать bundles для touch-pad, например?

Достаточно просто скопировать desktop.bundles под новым именем.

2) Слышал в одном из докладов, что у вас есть детектор для определения платформы, можете кинуть пару примеров его использования?

API закрыли за ненадобностью. По смыслу достаточно просто смотреть в user agent. Есть множество готовых модулей. Например, https://github.com/3rd-Eden/useragent

3) Опять же в одном из докладов слышал про "тулзу", которой скармливаешь bemjson, а она на его основе генерирует папки блоков и элементов. Как она называется?

https://github.com/tadatuta/create-files-by-bemjson

Однако прямо сейчас мы переписываем bem create, так что в планах перевести на новую версию и create-files-by-bemjson плюс сделать планы для редакторов — будет заметно удобнее, чем есть сейчас.

romanslonov commented 8 years ago

Спасибо, Владимир. Сборщик сам узнает что появились новые бандлы которые нужно собирать? Ничего вручную прописывать не нужно?

И по определятору, его подключать как обычный плагин? Куда лучше ложить и как сказать что нужно отдавать планшетам touch-pad.bundles? Если не сложно, можно лёгкий пример? Спасибо.

tadatuta commented 8 years ago

Сборщик сам узнает что появились новые бандлы которые нужно собирать? Ничего вручную прописывать не нужно?

Да, если имя директории попадает под маску *.bundles (см. https://github.com/bem/project-stub/blob/bem-core/.enb/make.js#L37)

Куда лучше ложить и как сказать что нужно отдавать планшетам touch-pad.bundles?

Сервер, который получает запросы от пользователя, в заголовке будет иметь информацию о user agent. Нужно эту информацию разобрать и на ее основании сервер должен вернуть нужный бандл. Реализация полностью зависит от используемого сервера, поэтому пример стоит искать по запросу «разбор user agent» + название используемого сервера.