Yang Guo | 4fd355c | 2019-09-19 08:59:03 | [diff] [blame] | 1 | # mkdirp |
| 2 | |
| 3 | Like `mkdir -p`, but in node.js! |
| 4 | |
| 5 | [](http://travis-ci.org/substack/node-mkdirp) |
| 6 | |
| 7 | # example |
| 8 | |
| 9 | ## pow.js |
| 10 | |
| 11 | ```js |
| 12 | var mkdirp = require('mkdirp'); |
| 13 | |
| 14 | mkdirp('/tmp/foo/bar/baz', function (err) { |
| 15 | if (err) console.error(err) |
| 16 | else console.log('pow!') |
| 17 | }); |
| 18 | ``` |
| 19 | |
| 20 | Output |
| 21 | |
| 22 | ``` |
| 23 | pow! |
| 24 | ``` |
| 25 | |
| 26 | And now /tmp/foo/bar/baz exists, huzzah! |
| 27 | |
| 28 | # methods |
| 29 | |
| 30 | ```js |
| 31 | var mkdirp = require('mkdirp'); |
| 32 | ``` |
| 33 | |
| 34 | ## mkdirp(dir, opts, cb) |
| 35 | |
| 36 | Create a new directory and any necessary subdirectories at `dir` with octal |
| 37 | permission string `opts.mode`. If `opts` is a non-object, it will be treated as |
| 38 | the `opts.mode`. |
| 39 | |
Tim van der Lippe | 9f4406f | 2020-04-14 16:01:47 | [diff] [blame] | 40 | If `opts.mode` isn't specified, it defaults to `0777`. |
Yang Guo | 4fd355c | 2019-09-19 08:59:03 | [diff] [blame] | 41 | |
| 42 | `cb(err, made)` fires with the error or the first directory `made` |
| 43 | that had to be created, if any. |
| 44 | |
| 45 | You can optionally pass in an alternate `fs` implementation by passing in |
| 46 | `opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and |
| 47 | `opts.fs.stat(path, cb)`. |
| 48 | |
| 49 | ## mkdirp.sync(dir, opts) |
| 50 | |
| 51 | Synchronously create a new directory and any necessary subdirectories at `dir` |
| 52 | with octal permission string `opts.mode`. If `opts` is a non-object, it will be |
| 53 | treated as the `opts.mode`. |
| 54 | |
Tim van der Lippe | 9f4406f | 2020-04-14 16:01:47 | [diff] [blame] | 55 | If `opts.mode` isn't specified, it defaults to `0777`. |
Yang Guo | 4fd355c | 2019-09-19 08:59:03 | [diff] [blame] | 56 | |
| 57 | Returns the first directory that had to be created, if any. |
| 58 | |
| 59 | You can optionally pass in an alternate `fs` implementation by passing in |
| 60 | `opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and |
| 61 | `opts.fs.statSync(path)`. |
| 62 | |
| 63 | # usage |
| 64 | |
| 65 | This package also ships with a `mkdirp` command. |
| 66 | |
| 67 | ``` |
| 68 | usage: mkdirp [DIR1,DIR2..] {OPTIONS} |
| 69 | |
| 70 | Create each supplied directory including any necessary parent directories that |
| 71 | don't yet exist. |
| 72 | |
| 73 | If the directory already exists, do nothing. |
| 74 | |
| 75 | OPTIONS are: |
| 76 | |
| 77 | -m, --mode If a directory needs to be created, set the mode as an octal |
| 78 | permission string. |
| 79 | |
| 80 | ``` |
| 81 | |
| 82 | # install |
| 83 | |
| 84 | With [npm](http://npmjs.org) do: |
| 85 | |
| 86 | ``` |
| 87 | npm install mkdirp |
| 88 | ``` |
| 89 | |
| 90 | to get the library, or |
| 91 | |
| 92 | ``` |
| 93 | npm install -g mkdirp |
| 94 | ``` |
| 95 | |
| 96 | to get the command. |
| 97 | |
| 98 | # license |
| 99 | |
| 100 | MIT |