Need help with make-dir?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sindresorhus
428 Stars 32 Forks MIT License 48 Commits 3 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

# 206
node
exec
test-fr...
nextjs
32 commits
# 32,349
webfram...
exec
Babel
test-fr...
5 commits
# 24,663
JavaScr...
npm
CSS
postcss...
4 commits
# 1,366
Ruby
Shell
ecmascr...
jQuery
2 commits
# 7,442
TypeScr...
typescr...
iterm2
Node.js
2 commits
# 215,964
IPFS
Shell
C++
React
1 commit
# 9,537
exec
React
SQLite
transac...
1 commit
# 17,807
scoop
Svelte
Racket
exec
1 commit

make-dir 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.