node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey ยป



Based upon Mikeal Rogers' watch library.

Watch a file tree and emit appropriate events for various changes. Extends EventEmitter. Uses to monitor files for change, and re-scans directories periodically to detect new creations and deletions.

Polling allows watcher to function on most operating systems where or FS.watchFile are not fully supported or have inconsistent behavior. is still used to monitor file changes asynchronously.

Class: Watch

  • constructor({object}options) options:
    • root: top-level folder to watch
    • refresh: interval to
  • start(): Start the watcher
  • stop(): Stop the watcher


  • path: Path of the affected node relative to the watch tree root
  • dir: boolean, indicates whether or not the node is a folder


Events emit a WatchEvent object

  • watching: Emitted when a new file or folder is added to the watch list
  • create: Emitted when a new file is detected in the watched tree
  • change: Emitted when a file in the watch list is changed
  • delete: emitted when a file or folder is deleted from the watched tree

Class: Search

  • constructor({object}options) options:
    • root: top-level folder to search in
    • filter: function(path) called for each path found in tree. Return true to emit path and search with in if directory
  • start(): Start traversing


Events emit the path of the located node relative to the specified root. This allows trees to be mirrored in different roots.

  • file: Emitted when a file node is located
  • folder: Emitted when a folder node is located