bem-site / bem-forum-content-ru

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

2 вопроса по автоматизации и DRY #727

Open shkarupa-alex opened 8 years ago

shkarupa-alex commented 8 years ago
  1. Допустим есть 10-20 страниц верстки. Шапка и подвал на этих 20 страницах повторяются 1 в 1. Хочешь что-то изменить? - 20 copy&paste в bemson. Это мой текущий уровень понимания. А нет ли случаем возможности выносить повторяющиеся части страниц в отдельные bemjson-файлы, чтобы править в одном месте? Я попробовал require в bemjson - работает, но не до конца. При повторной сборке bemjson-to-bemdecl сборщик (не зная про инклуды) считает что bemjson не изменился и естественно не перегенерирует bemdecl. Кто как решает эту DRY-задачку?
  2. Нет ли какой-нибудь технологии, которая на основе bemjson+bh сформирует список зависимостей как это сделано при сборке bemjson->bemdecl->deps? Очень надоедает для каждой bh-реализации руками писать deps.js
tadatuta commented 8 years ago
  1. Эту проблему решает BEMTREE и/или вотчер за изменениями на файловой системе. В простом случае достаточно вотчить файлы с общими частями страницы и, если они поменялись, вызывать touch path/to/bundles/*.bemjson.js

Нет ли какой-нибудь технологии, которая на основе bemjson+bh сформирует список зависимостей как это сделано при сборке bemjson->bemdecl->deps?

Здесь есть две принципиальные проблемы:

  1. До того, как построится граф зависимостей, нельзя определить, какие из BH-шаблонов нужно включать в сборку, соответственно, нет возможности по ним достроить граф.
  2. В шаблонах могут быть конструкции с if, конкатенацией строк и прочие сложные кейсы, которые не так-то просто проанализировать статически. Кроме того, это может оказаться достаточно медленно. Поэтому нормального решения, которое можно было бы один раз подключить и забыть о депсах пока нет. Есть всякие поделки типа https://github.com/tadatuta/bem-deps-parser и большое желание все-таки что-нибудь придумать.