💾 Archived View for gmi.noulin.net › gitRepositories › git-off › file › src › node_modules › rimraf … captured on 2024-09-29 at 01:12:42. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
README.md (3600B)
1 [![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies) 2 3 The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node. 4 5 Install with `npm install rimraf`, or just drop rimraf.js somewhere. 6 7 ## API 8 9 `rimraf(f, [opts], callback)` 10 11 The first parameter will be interpreted as a globbing pattern for files. If you 12 want to disable globbing you can do so with `opts.disableGlob` (defaults to 13 `false`). This might be handy, for instance, if you have filenames that contain 14 globbing wildcard characters. 15 16 The callback will be called with an error if there is one. Certain 17 errors are handled for you: 18 19 * Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of 20 `opts.maxBusyTries` times before giving up, adding 100ms of wait 21 between each attempt. The default `maxBusyTries` is 3. 22 * `ENOENT` - If the file doesn't exist, rimraf will return 23 successfully, since your desired outcome is already the case. 24 * `EMFILE` - Since `readdir` requires opening a file descriptor, it's 25 possible to hit `EMFILE` if too many file descriptors are in use. 26 In the sync case, there's nothing to be done for this. But in the 27 async case, rimraf will gradually back off with timeouts up to 28 `opts.emfileWait` ms, which defaults to 1000. 29 30 ## options 31 32 * unlink, chmod, stat, lstat, rmdir, readdir, 33 unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync 34 35 In order to use a custom file system library, you can override 36 specific fs functions on the options object. 37 38 If any of these functions are present on the options object, then 39 the supplied function will be used instead of the default fs 40 method. 41 42 Sync methods are only relevant for `rimraf.sync()`, of course. 43 44 For example: 45 46 ```javascript 47 var myCustomFS = require('some-custom-fs') 48 49 rimraf('some-thing', myCustomFS, callback) 50 ``` 51 52 * maxBusyTries 53 54 If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered 55 on Windows systems, then rimraf will retry with a linear backoff 56 wait of 100ms longer on each try. The default maxBusyTries is 3. 57 58 Only relevant for async usage. 59 60 * emfileWait 61 62 If an `EMFILE` error is encountered, then rimraf will retry 63 repeatedly with a linear backoff of 1ms longer on each try, until 64 the timeout counter hits this max. The default limit is 1000. 65 66 If you repeatedly encounter `EMFILE` errors, then consider using 67 [graceful-fs](http://npm.im/graceful-fs) in your program. 68 69 Only relevant for async usage. 70 71 * glob 72 73 Set to `false` to disable [glob](http://npm.im/glob) pattern 74 matching. 75 76 Set to an object to pass options to the glob module. The default 77 glob options are `{ nosort: true, silent: true }`. 78 79 Glob version 6 is used in this module. 80 81 Relevant for both sync and async usage. 82 83 * disableGlob 84 85 Set to any non-falsey value to disable globbing entirely. 86 (Equivalent to setting `glob: false`.) 87 88 ## rimraf.sync 89 90 It can remove stuff synchronously, too. But that's not so good. Use 91 the async API. It's better. 92 93 ## CLI 94 95 If installed with `npm install rimraf -g` it can be used as a global 96 command `rimraf <path> [<path> ...]` which is useful for cross platform support. 97 98 ## mkdirp 99 100 If you need to create a directory recursively, check out 101 [mkdirp](https://github.com/substack/node-mkdirp).