make-dir Build Status codecov

Make a directory and its parents if needed - Think mkdir -p

Advantages over mkdirp

Install

$ npm install make-dir

Usage

$ pwd /Users/sindresorhus/fun $ tree .

```js const makeDir = require('make-dir');

(async () => { const path = await makeDir('unicorn/rainbow/cake');

console.log(path);
//=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'

})(); ```

$ tree . └── unicorn └── rainbow └── cake

Multiple directories:

```js const makeDir = require('make-dir');

(async () => { const paths = await Promise.all([ makeDir('unicorn/rainbow'), makeDir('foo/bar') ]);

console.log(paths);
/*
[
    '/Users/sindresorhus/fun/unicorn/rainbow',
    '/Users/sindresorhus/fun/foo/bar'
]
*/

})(); ```

API

makeDir(path, [options])

Returns a Promise for the path to the created directory.

makeDir.sync(path, [options])

Returns the path to the created directory.

path

Type: string

Directory to create.

options

Type: Object

mode

Type: integer
Default: 0o777 & (~process.umask())

Directory permissions.

fs

Type: Object
Default: require('fs')

Use a custom fs implementation. For example graceful-fs.

Using a custom fs implementation will block the use of the native recursive option if fs.mkdir or fs.mkdirSync is not the native function.

Related

License

MIT © Sindre Sorhus