1. 程式人生 > >Node監控資料夾中的檔案改變事件

Node監控資料夾中的檔案改變事件

// 需要忽略的資料夾
var ignores = '.git,doc,tool,coffee'.split(',')

// 有時候修改檔案後會連續回撥兩次,用這個時間過濾掉第二次重複的回撥
var lastUpdateTime = 0;

function watch(dir) {
  fs.watch(dir, (event, filename)=> {
    if (ignores.includes(filename)) return
    var diff = Date.now() - lastUpdateTime
    lastUpdateTime = Date.now()
    if
(diff < 100) return console.log('event is: ' + event + 'filename:' + filename + ' now:' + Date.now()); // TODO: do anything ... }) // 原生監控不能監控到子資料夾中的檔案改變事件,遍歷之 var files = fs.readdirSync(dir); for (var i = 0; i < files.length; i++) { if (ignores.includes(files[i])) continue var
file = dir + '/' + files[i] var stat = fs.statSync(file) if (stat.isDirectory() == true) { watch(file); } } } // 開始監控當前目錄 watch('.') console.log('start watch...');