Make a directory and its parents if needed - Think `mkdir -p`
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test Require Node.js 6 May 15, 2018
.editorconfig Init May 9, 2017
.gitattributes Init May 9, 2017
.gitignore Meta tweaks Oct 22, 2017
.npmrc Meta tweaks Oct 22, 2017
.travis.yml Require Node.js 6 May 15, 2018
appveyor.yml Require Node.js 6 May 15, 2018
index.js Require Node.js 6 May 15, 2018
license Meta tweaks Oct 22, 2017
package.json Require Node.js 6 May 15, 2018
readme.md Add some related modules to the readme Nov 3, 2017

readme.md

make-dir Build Status: macOS & Linux Build status: Windows 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

Install

$ npm install make-dir

Usage

$ pwd
/Users/sindresorhus/fun
$ tree
.
const makeDir = require('make-dir');

makeDir('unicorn/rainbow/cake').then(path => {
	console.log(path);
	//=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
});
$ tree
.
└── unicorn
    └── rainbow
        └── cake

Multiple directories:

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

Promise.all([
	makeDir('unicorn/rainbow')
	makeDir('foo/bar')
]).then(paths => {
	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.

Related

License

MIT © Sindre Sorhus