// 需要忽略的文件夹
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...');
Node监控文件夹中的文件改变事件
最新推荐文章于 2025-04-12 10:19:37 发布