подскажите пожалуйста в чем ошибка
код:
var bemtreeTemplate = fs.readFileSync(path.join('.',pathToBundle, 'index.bemtree.js'), 'utf-8');
var context = vm.createContext({
console: console,
require: require,
Vow: vow
});
vm.runInContext(bemtreeTemplate, context);
ошибка:
node ./desktop.bundles/index/index.node.js
evalmachine.<anonymous>:85
if('onreadystatechange' in doc.createElement('script')) { // ie6-ie8
^
TypeError: Cannot read property 'createElement' of undefined
at evalmachine.<anonymous>:85:39
at evalmachine.<anonymous>:104:7
at Object.__vow_init (evalmachine.<anonymous>:1331:3)
at buildBemXjst (evalmachine.<anonymous>:1335:12)
at evalmachine.<anonymous>:1603:25
at evalmachine.<anonymous>:1605:3
at Object.exports.runInContext (vm.js:44:17)
at /home/rustam/work/newkent/desktop.blocks/server/server.node.js:18:5
at pendingRequires.push.cb (/home/rustam/work/newkent/desktop.bundles/index/index.node.js:88:32)
at onDeclResolved (/home/rustam/work/newkent/desktop.bundles/index/index.node.js:175:29)
Нужно пробросить
setImmediate
в контексте, где выполняются шаблоны:Таже самая ошибка привела меня на эту страницу. Можно ли сейчас побключить BEMTREE на клиенте через ya модуль?
Конечно, я так делаю. Правда, в enb-bemxjst последних версий есть баг, который может мешать. Поэтому, скорее всего, вам придётся использовать enb-bemxjst#1.4.0.
@apsavin Спасибо за ответ. Пересобрал с
enb-bemxjst#1.4.0
Тотже эффект.@apsavin Каким образом доставляете бандл BEMTREE в браузер?
@trebushuk Если я дам вот такую ссылку, то отвечу?
Ребят, на самом деле все ровно наоборот — стоит перейти на
enb-bemxjst 6.x
(где мы отказались асинхронности в шаблонах, а значит —vow
вообще не нужен).@tadatuta А шестая версия только через глобальную область видимости доступна? Не оборачивается в ya модуль? Установил
enb-bemxjst 6.x
иindex.js:299 Uncaught Error: Module "processes": can't resolve dependence "BEMTREE"
, правда нашелся в глобальной области.Должно предоставляться в ymodules, если
modules
доступно. См. https://github.com/enb/enb-bemxjst/blob/master/lib/assets/bundle.jst#L23-L36Если этого не происходит, возможно это баг, стоит зарепортить в https://github.com/enb/enb-bemxjst/issues