Throw error if there is no base templates
Closed this issue · 9 comments
If you do not add base teamples — assembly will be successful, but if you call BEMHTML.apply(bemjson)
you will see strange error:
Error: Match failed.
@blond What you mean by base templates?
How it correlates with bemtree and bemhtml mocks which are used if surce files are not exists?
И все-таки нужно решить что делать по этой задаче.
Насколько я помню наше с тобой обсуждение ничем не закончилось
@veged рекомендовал добавить вот такую проверку
oninit(function(exports, context) {
if(!context.BEMContext) throw Error('Seems like you have no base templates from i-bem.bemhtml');
})
Кажется, что с этим уже вполне можно жить.
Но если у вас есть более годный способ — я только за.
@tadatuta, можно анализировать каждый файл на наличие oninit(function(exports, context) {
и внутри BEMContext
. Или такой анализ лучше делать где-то в bemhint
?
Анализировать каким способом?
Если просто текстовый код регулярными выражениями, то кажется, что опасно, так как код шаблонов в принципе может быть абсолютно произвольным
Кажется, вариант @veged пока самый годный
Пока удалось реализовать проверку и вывод ошибки только для production режима.
Завел связанную задачу в bem-xjst
Готовый код по данной задаче находится в ветке issue-60