Добрый вечер
Пытаюсь вывести данные из JSON, как сказано здесь - https://ru.bem.info/forum/716/
Ничего не выходит, помогите найти ошибку
Вывожу вот так - http://joxi.ru/V2VL9x3SxLX34r
Выдаёт ошибку TypeError: Cannot read property 'apply' of undefined http://joxi.ru/1A5xBqGsnO6Nd2
В переменную BEMTREE почему-то ничего не приходит.
Проверил в вышеобозначенном файле page.bemtree.js через console.log() значения этих четырёх переменных:
- PATH
- pathToBundle
- BEMTREE
- BEMHTML
Все имеют значение, кроме BEMTREE имеющей undefined
Сборку свою текущую загрузил сюда - https://yadi.sk/d/6WCDVmYN3MqEBL
если удалить
common.blocks/page/page.bemtree.js
все станет нормально. код, который запускает шаблоны, должен быть вне кода самих шаблонов.Пробовал удалить, пробовал переместить эту часть кода в другие файлы - http://joxi.ru/5mdYLlBskZd492
Но всё по-прежнему - http://joxi.ru/52az6GBF4dY9KA
С частью проблем разобрался, но пока всё равно не получается вывести данные из json
Куда надо положить файл с этим содержимым применительно к этой сборке? - https://github.com/tadatuta/bem-bemtree-static-project-stub
var data = require('../../common.blocks/server/data.json'); PATH = require('path'), pathToBundle = PATH.join('.', 'desktop.bundles', 'index'), BEMTREE = require(PATH.join('../../' + pathToBundle, 'index.bemtree.js')).BEMTREE, BEMHTML = require(PATH.join('../../' + pathToBundle, 'index.bemhtml.js')).BEMHTML, bemjson = BEMTREE.apply(data), html = BEMHTML.apply(bemjson);
require('fs').writeFileSync('index.html', html);
BEMTREE.apply({ block: 'main', data: data // теперь данные попадут в контекст шаблона блока page });
Я положил этот код в common.blocks/server/server.node.js И рядом положил файл server.deps.js с этим содержимым:
({ shouldDeps: [ 'main' ] })
По итогу данные в main не попадают, сборка игнорирует видимо содержимое common.blocks/server/server.node.js