make-dir
Make a directory and its parents if needed - Think
mkdir -p
Advantages over mkdirp
mkdirpPromise API (Async/await ready!)
100% test coverage
CI-tested on macOS, Linux, and Windows
Actively maintained
Doesn't bundle a CLI
Uses native the
fs.mkdir/mkdirSyncrecursiveoption in Node.js >=10.12.0 unless overridden
Install
$ npm install make-dirUsage
$ 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
        └── cakeMultiple 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 & (~process.umask())
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
make-dir-cli - CLI for this module
del - Delete files and directories
globby - User-friendly glob matching
cpy - Copy files
cpy-cli - Copy files on the command-line
move-file - Move a file
License
MIT © Sindre Sorhus
Last updated
Was this helpful?