rm -rf for node.
npm install rimraf, or just drop rimraf.js somewhere.
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.
It can remove stuff synchronously, too. But that's not so good. Use the async API. It's better.
If installed with
npm install rimraf -g it can be used as a global
rimraf <path> which is useful for cross platform support.