{"name":"rimraf","version":"2.2.8","main":"rimraf.js","description":"A deep deletion module for node (like `rm -rf`)","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me/"},"license":{"type":"MIT","url":"https://github.com/isaacs/rimraf/raw/master/LICENSE"},"repository":{"type":"git","url":"git://github.com/isaacs/rimraf.git"},"scripts":{"test":"cd test && bash run.sh"},"bin":{"rimraf":"./bin.js"},"contributors":[{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"http://blog.izs.me"},{"name":"Wayne Larsen","email":"wayne@larsen.st","url":"http://github.com/wvl"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"Marcel Laverdet"},{"name":"Yosef Dinerstein","email":"yosefd@microsoft.com"}],"readme":"`rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one.  Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n  `opts.maxBusyTries` times before giving up.\n* `ENOENT` - If the file doesn't exist, rimraf will return\n  successfully, since your desired outcome is already the case.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too.  But that's not so good.  Use\nthe async API.  It's better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf <path>` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/isaacs/rimraf/issues"},"homepage":"https://github.com/isaacs/rimraf","_id":"rimraf@2.2.8","_shasum":"e439be2aaee327321952730f99a8929e4fc50582","_from":"https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz","_resolved":"https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"}