Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including monocle with all npm packages installed. Try it out:

var monocle = require("monocle")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

monocle v1.1.51

a tool for watching directories for file changes

Build Status

Monocle -- a tool for watching things


Have you ever wanted to watch a folder and all of its files/nested folders for changes. well now you can!


npm install monocle


Watch a directory:

var monocle = require('monocle')()
  root: <root directory>,
  fileFilter: <optional>,
  directoryFilter: <optional>,
  listener: fn(fs.stat+ object), //triggered on file change / addition
  complete: <fn> //file watching all set up

The listener will recive an object with the following

  name: <filename>,
  path: <filepath-relative>,
  fullPath: <filepath-absolute>,
  parentDir: <parentDir-relative>,
  fullParentDir: <parentDir-absolute>,
  stat: <see fs.stats>


When a new file is added to the directoy it triggers a file change and thus will be passed to your specified listener.

The two filters are passed through to readdirp. More documentation can be found here

Watch a list of files:

  files: [], //path of file(s)
  listener: <fn(fs.stat+ object)>, //triggered on file / addition
  complete: <fn> //file watching all set up

Just watch path

Just an alias of watchFiles and watchDirectory so you don't need to tell if that's a file or a directory by yourself. Parameter passed to path can be a string or a array of string.

  path: [], //list of paths, or a string of path
  fileFilter: <optional>, // `*.js` for example
  listener: <fn(fs.stat+ object)>, //triggered on file / addition
  complete: <fn> //file watching all set up

Force to use

You can use the USE_FS_WATCH env variable set to true, to force this behavior regardless of platform.

Why not just use ?

  • file watching is really bad cross platforms in node
  • you need to be smart when using as compared to fs.watchFile
  • Monocle takes care of this logic for you!
  • windows systems use
  • osx and linux uses fs.watchFile




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free