You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Pau aff9d08cee client 1 year ago
node_modules client 1 year ago
index.d.ts client 1 year ago
index.js client 1 year ago
license client 1 year ago
package.json client 1 year ago client 1 year ago

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


$ npm install make-dir


$ pwd
$ tree
const makeDir = require('make-dir');

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

	//=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
$ tree
└── unicorn
    └── rainbow
        └── cake

Multiple directories:

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

(async () => {
	const paths = await Promise.all([



makeDir(path, options?)

Returns a Promise for the path to the created directory.

makeDir.sync(path, options?)

Returns the path to the created directory.


Type: string

Directory to create.


Type: object


Type: integer
Default: 0o777

Directory permissions.


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.

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.