Javascript node.js:删除require.cache不工作

Javascript node.js:删除require.cache不工作,javascript,node.js,hot-module-replacement,Javascript,Node.js,Hot Module Replacement,我正在尝试使用chokidar为koa2开发构建HMR 更改/middleware/render中的文本将触发chokidar文件监视事件,并按预期立即清除require.cache,但当我重新加载页面时,呈现的文本实际上没有更改 /index.js /middleware/views.js /middleware/render.js ./templates/index.ejs 节点回购 好的。。。这有帮助 以前 现在 const path = require('path'); const h

我正在尝试使用
chokidar
为koa2开发构建HMR

更改
/middleware/render
中的文本将触发chokidar文件监视事件,并按预期立即清除require.cache,但当我重新加载页面时,呈现的文本实际上没有更改

/index.js /middleware/views.js /middleware/render.js ./templates/index.ejs

节点回购
好的。。。这有帮助

以前 现在
const path = require('path');
const http = require('http');
const Koa = require('koa');
const chokidar = require('chokidar');
const views = require('./middlewares/views.js');
const render = require('./middlewares/render.js');

const PORT = 3000;

const app = new Koa();

app.use(views);

app.use(render);

const server = http.createServer(app.callback());

server.listen(PORT, function() {
  console.log('server now listening on port: %s', PORT);
});

const watcher = chokidar.watch([
  path.resolve(__dirname, './middlewares'),
]);

watcher.on('ready', function() {
  watcher.on('all', function(event, filename) {
    console.log('clearing module cache...');
        Object.keys(require.cache).forEach(function (id) {
          if (/[\/\\]middlewares[\/\\]/.test(id)) {
            console.log('delete cache: %s', id);
            delete require.cache[id];
          }
        });
  });
});
const views = require('koa-views');

module.exports = views('./templates', {
  http: 'ejs',
  extension: 'ejs',
});
module.exports = async (ctx, next) => {
  // CHANGING THIS TEXT, TRIGGERS CHOKIDAR FILE-WATCH EVENT.
  // REQUIRE.CACHE SEEMS CLEARED IMMEDIATELY.
  // BUT WHEN I RELOAD PAGE, TEXT DOES NOT CHANGES!
  const content = 'test delete require.cache.'; 
  await ctx.render('main.ejs', { content: content });
};
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Node Repo</title>
</head>
<body>
  <div><%- content %></div>
</body>
</html>
const views = require('./middlewares/views.js');
const render = require('./middlewares/render.js');

app.use(views);
app.use(render);
app.use(async (ctx, next) => {
  const views = require('./middlewares/views.js');
  await views(ctx, next);
});

app.use(async (ctx, next) => {
  const render = require('./middlewares/render.js');
  await render(ctx, next);
});