Здравствуйте, искал в интернете про кеширование в pug, использую gulp4. Наткнулся на ваши статьи.
Все очень интересные, но как решить проблему я так и не понял.
У меня есть проект со структурой
Галп watch следит за всеми файлами сразу и за файлами в папке pages и за файлами в папке blocks.
Если, я что-то изменил в header, то гулп об этом скажет и на эвент отдаст путь к файлу header.pug. Я прочитал статью, прочитал документацию. Сказывается слабый опыт в этом деле (в программировании), но я не могу понять, как emitty будет находить файлы которые инклюдят в себя header.pug, а они же инклюдятся в файлы в папке Pages.
Я попытался поиграть с функцией scan. Я ожидал, что в сетапе я указываю родителей которые по умолчанию сканируются, а в саму функцию могу передавать нужный файл который тоже в свою очередь просканируется и добавится в store, но получил то, что вообще ничего не понимаю.
Я ожидал получить тут более глубокий список зависимостей, но я получил 1 уровненный.
В общем я не понимаю, как мне хотя бы получить все зависимости каждого файла рекурсивно.
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 },
'app/blocks/pages/projects.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/tags/tags.pug',
'app/blocks/filter-select/filter-select.pug' ],
ctime: 1484337116560 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 },
'app/blocks/pages/projects.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/tags/tags.pug',
'app/blocks/filter-select/filter-select.pug' ],
ctime: 1484337116560 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 },
'app/blocks/pages/projects.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/tags/tags.pug',
'app/blocks/filter-select/filter-select.pug' ],
ctime: 1484337116560 },
'app/blocks/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/reader/reader.pug',
'app/blocks/sidebar-module/sidebar-module.pug',
'app/blocks/actions/actions.pug',
'app/blocks/controller/controller.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/toc/toc.pug',
'app/blocks/page-arrows/page-arrows.pug' ],
ctime: 1484770833628 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 },
'app/blocks/pages/projects.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/tags/tags.pug',
'app/blocks/filter-select/filter-select.pug' ],
ctime: 1484337116560 },
'app/blocks/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/reader/reader.pug',
'app/blocks/sidebar-module/sidebar-module.pug',
'app/blocks/actions/actions.pug',
'app/blocks/controller/controller.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/toc/toc.pug',
'app/blocks/page-arrows/page-arrows.pug' ],
ctime: 1484770833628 } }
{ 'app/pages/index.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/index.pug' ],
ctime: 1484783654120 },
'app/pages/projects.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/projects.pug' ],
ctime: 1484785040130 },
'app/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/text-page.pug' ],
ctime: 1484785045409 },
'app/pages/updates.pug':
{ dependencies:
[ 'app/blocks/layout-default/layout-default.pug',
'app/blocks/pages/updates.pug' ],
ctime: 1484783664715 },
'app/blocks/layout-default/layout-default.pug':
{ dependencies:
[ 'app/blocks/layout-default/default-include.pug',
'app/blocks/head/head.pug' ],
ctime: 1483654274226 },
'app/blocks/pages/index.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/updating/updating.pug' ],
ctime: 1484787847459 },
'app/blocks/pages/projects.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/tags/tags.pug',
'app/blocks/filter-select/filter-select.pug' ],
ctime: 1484337116560 },
'app/blocks/pages/text-page.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/section/section.pug',
'app/blocks/reader/reader.pug',
'app/blocks/sidebar-module/sidebar-module.pug',
'app/blocks/actions/actions.pug',
'app/blocks/controller/controller.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/project-item/project-item.pug',
'app/blocks/toc/toc.pug',
'app/blocks/page-arrows/page-arrows.pug' ],
ctime: 1484770833628 },
'app/blocks/pages/updates.pug':
{ dependencies:
[ 'app/blocks/header/header.pug',
'app/blocks/navigation/navigation.pug',
'app/blocks/main/main.pug',
'app/blocks/footer/footer.pug',
'app/blocks/big-search/big-search.pug',
'app/blocks/section/section.pug',
'app/blocks/sidebar-module/sidebar-module.pug',
'app/blocks/actions/actions.pug',
'app/blocks/updating/updating.pug',
'app/blocks/projects-list/projects-list.pug',
'app/blocks/page-nav/page-nav.pug' ],
ctime: 1484787964168 } }
И все же я не понимаю как мне получив файл который изменился, я смогу по нему найти родителей, а от них уже искать все зависимости и передавать в pug.
Я в js только месяца 3, да и в программировании в общем, поэтому не могу разобраться. Заранее спасибо за ответ.