patrick-steele-idem / browser-refresh

Node.js module to enable server restart and browser refresh in response to file modifications
110 stars 18 forks source link

After restart server it binds chokidar multiple times #36

Closed Eldar-X closed 6 years ago

Eldar-X commented 7 years ago

Hi! I discover that when restarting server by made changes in js or another files which requires server restart then try to make changes in marko hot reloading it change marko files multiple times

for example after 4 times restarting server by changes in js and 1 time in marko file it output console this

[browser-refresh] Refresh triggered
[browser-refresh] File has been changed: admin/components/test/index.marko
[browser-refresh] Special reload: /admin/components/test/index.marko
[marko/hot-reload] File modified: /Users/elix/Documents/Projeler/NodeJs/marko-4/admin/components/test/index.marko
[marko/hot-reload] File modified: /Users/elix/Documents/Projeler/NodeJs/marko-4/admin/components/test/index.marko
[marko/hot-reload] File modified: /Users/elix/Documents/Projeler/NodeJs/marko-4/admin/components/test/index.marko
[marko/hot-reload] File modified: /Users/elix/Documents/Projeler/NodeJs/marko-4/admin/components/test/index.marko
[browser-refresh] Triggering refresh of client pages...
[browser-refresh] Refresh triggered

My config file is

const refresh = require('browser-refresh-client');
const path = require('path');

module.exports.enable = () => {

  var hotReload = require('marko/hot-reload');
  hotReload.enable();

  refresh
    .enableSpecialReload('/{admin/assets/**,themes/*/assets/**,plugins/*/assets/**}', {
      autoRefresh: false
    })
    .onFileModified(function(filePath) {
      switch (path.extname(filePath)) {
        case '.less' || '.styl' || '.scss' || '.sass' || '.css':
          refresh.refreshStyles();
          break;
        case '.png' || '.jpg' || '.jpeg' || '.gif' || '.webp' || '.svg':
          refresh.refreshImages();
          break;
        case '.js':
          refresh.refreshPage();
          break;
        default:
          refresh.refreshPage();
      }
    });
}

i think it's bind chokidar on marko files everytime when server restarts

basickarl commented 7 years ago

I've also noticed it:

[browser-refresh] Special reload: /src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[marko/hot-reload] File modified: /home/karlm/dev/node/browser-sync-test/src/template.marko
[browser-refresh] Triggering refresh of client pages...
[browser-refresh] Refresh triggered

I'm just using vanilla browser-refresh.