From 123b78f0a25753012ff22a6b66ed7acb5c15c3b5 Mon Sep 17 00:00:00 2001 From: Tyler Johnson Date: Thu, 5 Dec 2013 15:55:17 -0700 Subject: [PATCH] implemented chokidar for file system watching --- package.json | 3 ++- src/node-loaders.js | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2c2a3ec5..35d9112c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "version": "1.0.0", "author": "James Long ", "dependencies": { - "optimist": "*" + "optimist": "*", + "chokidar": "~0.8.0" }, "devDependencies": { "expect.js": "*", diff --git a/src/node-loaders.js b/src/node-loaders.js index ef02f19d..204d08d6 100644 --- a/src/node-loaders.js +++ b/src/node-loaders.js @@ -2,6 +2,7 @@ var fs = require('fs'); var path = require('path'); var lib = require('./lib'); var Loader = require('./loader'); +var chokidar = require('chokidar'); // Node <0.7.1 compatibility var existsSync = fs.existsSync || path.existsSync; @@ -24,9 +25,10 @@ var FileSystemLoader = Loader.extend({ // they change lib.each(this.searchPaths, function(p) { if(existsSync(p)) { - fs.watch(p, { persistent: false }, function(event, filename) { - var fullname = path.join(p, filename || ''); - if((event == 'change' || event == 'rename') && fullname in this.pathsToNames) { + var watcher = chokidar.watch(p, { ignoreInitial: true }); + + watcher.on("all", function(event, fullname) { + if(event == "change" && fullname in this.pathsToNames) { this.emit('update', this.pathsToNames[fullname]); } }.bind(this));