Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Recursive fs.watch for watching entire directory trees
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
check-fs-watch-results check-fs-watch results for ubuntu
lib
test Fix tests
.gitignore
.travis.yml
AUTHORS Honor the guy that rewrote the entire thing
LICENSE
README.md link to travis ci added to Readme.md
autolint.js
buster.js Move buster.js to the project root
check-fs-watch.js
package.json
run-tests.js

README.md

fs-watch-tree

Build status

Please note! This package is outdated and not actively maintained. I would suggest looking at http://github.com/shama/gaze or https://github.com/paulmillr/chokidar.


fs-watch-tree is a small tool to watch directories for changes recursively. It uses fs-watch to watch for changes, thus should work on most platforms.

Synopsis

var watchTree = require("fs-watch-tree").watchTree;

var watch = watchTree("/home/christian", function (event) {
    // See description of event below
});

watch.end(); // Release watch

watch = watchTree("/home/christian", {
    exclude: ["node_modules", "~", "#", /^\./]
}, function (event) {
    // Respond to change
});

watchTree(dir, callback)

Watches directory dir recursively for changes.

The callback is called with an event object. The event is described below.

watchTree(dir, options, callback)

Watch a directory recursively, with some specific options. Currently, you can only specify a single option:

{ exclude: [] }

The exclude array specifies file patterns to exclude from watches. If a pattern matches a directory, watch-tree will not recurse into it. If it matches a file, changes to that file will not trigger an event.

The excludes can be either strings or regular expressions, but are always treated as regular expressions. That means that

{ exclude: [".git", "node_modules"] }

Will be treated the same way as:

{ exclude: [new RegExp(".git"), new RegExp("node_modules")] }

If you only want to exclude specific files, be sure to provide full paths. watch-tree does not expand paths, it will resolve all paths relative to the original directory. So this:

watchFile(".git", function (event) { /* ... *) });

Will watch (and consider excludes for) directories like .git/branches. And this:

watchFile("/home/christian/projects/watch-tree/.git", function (event) {});

Will watch (and consider excludes for) directories like /home/christian/projects/watch-tree/.git.

event

The event object has the following properties:

name

The full (relative) path to the file/directory that changed.

isDirectory()

Returns true if the cause of the change was a directory. In some cases, e.g. when the directory was deleted, it's not possible to know if the source was a directory. In that case, this method returns false.

isMkdir()

Returns true if the cause of the event was a newly created directory.

isDelete()

Returns true if the cause of the event was a deleted file/directory.

isModify()

Returns true if the cause of the event was a modified file/directory.

Something went wrong with that request. Please try again.