File-watcher library that simplifies responding to file changes while developing.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Watch files in a directory for changes/updates.

I know that this might not be the best way to do this but it seems to work for right now so I am putting it out there. Simply create a file to execute in the terminal (example below) and point it at the directory you would like to watch. When a file is changed the callback you pass in will execute and you can do whatever you want with the change.

I have started using this in conjunction with Grunt.js so I don't have to grunt with each change to my files while developing.

Basic Usage

Create a file in the root of your project with the contents below; don't forget chmod +x .

#!/usr/bin/env node
/*jshint laxcomma:true strict:false*/
/*globals require*/
var sherpa = require("sherpa");

var backpack = {
      js    : function (filename) {
        sherpa.exec(filename, "grunt js");
      ,less : function (filename) {
        sherpa.exec(filename, "grunt less");

sherpa("src", 300, function (filename, curr, prev) {
  if (+curr.mtime !== +prev.mtime) {
    try {
    } catch (e) {
      sherpa.exec(filename + "\n But I don't know what to do with it. :-(");


I have started some simple tests using expresso. To run tests simply ensure that the npm modules are installed by executing npm install in the root directory. Then execute expresso in the root. Hopefully all tests should pass.