Всем привет!
Пишу проект с использованием bem. На бэкенде koa сервер, который в том числе и осуществляет сборку фронетенда. Для удобста разработки в dev окружении при рендере страницы происходит пересборка проекта с помощью enb/lib/api/make.js
. Столкнулся с проблемой, что при изменении блоков и перезагрузки страницы пересборка запускается (и выполняется успешно), но отдается старая версия. Пробывал прибивать кэши BEMHTML и BEMTREE файлов:
delete require.cache[require.resolve(bemtreePath)];
delete require.cache[require.resolve(bemhtmlPath)];
, но это не помогло.
Пробывал прибивать кэш модуля рендера:
delete require.cache[__filename];
тоже ничего. Подскажите как это правильно сделать.
UPD: решил проблему! Проблема была в том, что я подгружал BEMHTML и BEMTREE файлы в САМОМ начале модуля и дроапал кэши в КОНЦЕ модуля, а в самом модуле была регистрация middleware. Когда перенес загрузку BEMHTML и BEMTREE в начало middleware и очистку кэша в конец middleware все заработаело
app.use(function *(next) {
const BEMTREE = require(bemtreePath).BEMTREE;
const BEMHTML = require(bemhtmlPath).BEMHTML;
.....
// remove require cache
delete require.cache[require.resolve(bemtreePath)];
delete require.cache[require.resolve(bemhtmlPath)];
})