Привет!
Захотелось пользоваться BEMHTML шаблонами на клиенте, но получается ошибка can't resolve dependence "BEMHTML"
. Вот как объявляется зависимость https://github.com/varya/varya.github.com/blob/features/github-repos/desktop.blocks/github/github.js В deps вроде тоже всё прописано https://github.com/varya/varya.github.com/blob/features/github-repos/desktop.blocks/github/github.deps.js
Делаю по образу и подобию bem-components, но библиотеки у меня старые (https://github.com/varya/varya.github.com/blob/features/github-repos/bower.json). Обновляться не хочу, боюсь, что это принесет ещё больше проблем. Сборка на ENB https://github.com/varya/varya.github.com/blob/features/github-repos/.bem/enb-make.js
Как мне заставить мой bemhtml работать в браузере?
Привет!
У тебя в
?.min.js
файл собирается кодym
+ клиенский JavaScript, но никакого BEMHTML туда не доезжает.Что можно сделать?
?.bemjson.js
файле дописать{ elem: 'js', url: 'index.bemhtml.js' }
. Подключить нужно после кода сym
, чтобы BEMHTML модуль прокинулся в модульную систему.?.bemhtml.js
таргета с помощью технологии enb/techs/file-merge.depsByTech
, пример можно посмотреть вproject-stub
https://github.com/bem/project-stub/blob/bem-core/.enb/make.js#L64-L82.В первом и втором случае на клиент приедут вообще все шаблоны, а не только те, которые нужны для клиентского JavaScript.
У меня главная страница не на bemjson. Подключение на страницу
<script src="/desktop.bundles/index/index.bemhtml.js"></script>
ничего не меняет. Я понимаю, что оно нужно, но тут дело, кажется, не в нём.Ошибку
can't resolve dependence "BEMHTML"
отдаётym
. Если подключить BEMHTML на страницу, а ошибка такая же, это может означать, что:1) Либо BEMHTML подключается до
ym
и поэтому прокидывается в глобальный скоуп, а не вym
. 2) Либо модуль, который требует BEMHTML отрабатывает раньше, чем BEMHTML подключается.Как проверить?
Если в глобальном скоупе есть переменная
BEMHTML
, значит 1-й случай. Еслиmodules. isDefined('BEMHTML')
— значит 2-й.Как починить?
Можно попробовать поменять местами подключаемые скрипты. Или, чтобы наверника — склеивать JavaScript и BEMHTML в один файл при сборке.
P.S. На всякий случай напомню, что надо не забывать чистить кэш, на всякий случай =)
enb make -n
@andrewblond Я переделала согласно пункту 3 и всё заработало, спасибо!