Войти с помощью github
Форум /

Всем привет!

Пишу проект с использованием 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)];
})