make-dir

by sindresorhus

sindresorhus / make-dir

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

411 Stars 32 Forks Last release: 6 months ago (v3.1.0) MIT License 41 Commits 10 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

make-dir Build Status codecov

Make a directory and its parents if needed - Think

mkdir -p

Advantages over
mkdirp

  • Promise API (Async/await ready!)
  • Fixes many
    mkdirp
    issues: #96 #70 #66
  • 100% test coverage
  • CI-tested on macOS, Linux, and Windows
  • Actively maintained
  • Doesn't bundle a CLI
  • Uses the native
    fs.mkdir/mkdirSync
    recursive
    option
    in Node.js >=10.12.0 unless overridden

Install

$ npm install make-dir

Usage

$ pwd
/Users/sindresorhus/fun
$ tree
.
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:

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

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


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.