使用Node.js監控目錄變化

發佈於2013年8月9日 -

Node.js提供了fs.watchfs.watchFile用於監控文件的變化。不過Node.js的這兩個函數做的不夠好,API也並不友善,因此,github上可以找到不少它們的wrapper。這裏介紹的是Paul MillerChokidar

安裝

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對象,格式見這裏