sfcode
An Online Competing and Development Environment
make-dir Build Status codecov

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

Advantages over <a href="https://github.com/substack/node-mkdirp"><tt>mkdirp</tt></a>

  • 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.