При сборке бандла выдает такую ошибку
Error: Only literal or function is allowed in template's body at 856:30 block('block1').content()({
at Compiler.assert (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:1 80:9)
at Compiler.transformTemplates (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:648:8)
at Array.map (native)
at Compiler.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:201:41)
at Object.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\api.js:16:40)
at Compiler.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\compiler.js:121:35)
at Compiler.generate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\compiler.js:707:14)
at Object.generate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\api.js:16:40)
at exports.techMixin.getCompiledResult (путь проекта\libs\bem-core.bem\techs\bemhtml.js:46:24)
at _fulfilled (путь проекта\node_modules\bem\node_modules\q\q.js:798:54)
Файл block1.bemtree Содержание
block('block1').content()({ elem: 'elem1' });
Как я понял теперь параметром может быть функция или строка. Но почему? Раньше у меня был bem-core v2.2.1 и там можно было вставлять и объект.
Говорят, чтобы в development и production режиме гарантированно был одинаковый результат.
Не понятно. Если я в development в качестве параметра использую объект или массив, то на production он может выдать другой результат?
Есть вот такое issue
Было бы удобнее, конечно, если бы "простые" объекты были разрешены, а подобный exception кидался только в случае обращений к this.ctx.someData и т.п.
Можно, наверное, у @tadatuta спросить, что они по этому поводу думают.
Согласен. Но пока что придётся переписывать блоки. Благо проект только на начальной стадии и блоков немного.
@apsavin простые объекты разрешены, ругаться начинает при обращении к полям
this
или при наличииapply()
.Точно, я ошибся. Странно, что топикстартер указывает на ошибку в файле
Теперь все понятно. У меня в этом блоке есть выражения типа this.ctx.bla_bla_bla. Поэтому и вызывает ошибку. Если вставляю простой объект, то все работает.