Node.js提供了fs.watch
和fs.watchFile
用于监控文件的变化。不过Node.js的这两个函数做的不够好,API也并不友善,因此,github上可以找到不少它们的wrapper。这里介绍的是Paul Miller的Chokidar。
安装
Chokidar可以使用包管理器来安装:
npm install chokidar
使用
Chokidar的使用非常简单,一起来看一个例子:
chokidar = require 'chokidar'
watcher = chokidar.watch 'files', persistent: true
watcher
.on 'add', (path) ->
console.log(path, 'added')
.on 'change', (path) ->
console.log(path, 'changed')
.on 'unlink', (path) ->
console.log(path, 'removed')
如果还想得到更多关于文件的信息,可以使用复杂一点的回调函数:
watcher.on 'change' (path, stats) ->
console.log('File', path, 'changed size to', stats.size)
这里,stats
是相应的fs.Stats
对象,格式见这里。