A rm -rf for node.

Install with npm install rimraf, or just drop rimraf.js somewhere.


rimraf(f, [options,] callback)

The callback will be called with an error if there is one. Certain errors are handled for you:

  • EBUSY - rimraf will back off a maximum of opts.maxBusyTries times before giving up.
  • EMFILE - If too many file descriptors get opened, rimraf will patiently wait until more become available.


The options object is optional. These fields are respected:

  • maxBusyTries - The number of times to retry a file or folder in the event of an EBUSY error. The default is 3.
  • gently - If provided a gently path, then rimraf will only delete files and folders that are beneath this path, and only delete symbolic links that point to a place within this path. (This is very important to npm's use-case, and shows rimraf's pedigree.)


It can remove stuff synchronously, too. But that's not so good. Use the async API. It's better.