Blame view

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