make-dir
Make a directory and its parents if needed - Think `mkdir -p`
Last updated 6 years ago by sindresorhus .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install make-dir 
SYNC missed versions from official npm registry.

make-dir

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

[!TIP] You probably want the built-in fsPromises.mkdir('…', {recursive: true}) instead.

Advantages over fsPromises.mkdir('…', {recursive: true})

  • Supports a custom fs implementation.

Advantages over mkdirp

  • Promise API (Async/await ready!)
  • Fixes many mkdirp issues: #96 #70 #66
  • 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 unless overridden

Install

npm install make-dir

Usage

$ pwd
/Users/sindresorhus/fun
$ tree
.
import {makeDirectory} from 'make-dir';

const path = await makeDirectory('unicorn/rainbow/cake');

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

Multiple directories:

import {makeDirectory} from 'make-dir';

const paths = await Promise.all([
	makeDirectory('unicorn/rainbow'),
	makeDirectory('foo/bar')
]);

console.log(paths);
/*
[
	'/Users/sindresorhus/fun/unicorn/rainbow',
	'/Users/sindresorhus/fun/foo/bar'
]
*/

API

makeDirectory(path, options?)

Returns a Promise for the path to the created directory.

makeDirectorySync(path, options?)

Returns the path to the created directory.

path

Type: string

The directory to create.

options

Type: object

mode

Type: integer
Default: 0o777

The directory permissions.

fs

Type: object
Default: import fs from 'node: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

Current Tags

  • 5.0.0                                ...           latest (6 months ago)

12 Versions

  • 5.0.0                                ...           6 months ago
  • 4.0.0                                ...           a year ago
  • 3.1.0                                ...           5 years ago
  • 3.0.2                                ...           5 years ago
  • 3.0.1                                ...           5 years ago
  • 3.0.0                                ...           6 years ago
  • 2.1.0                                ...           6 years ago
  • 2.0.0                                ...           6 years ago
  • 1.3.0                                ...           7 years ago
  • 1.2.0                                ...           7 years ago
  • 1.1.0                                ...           7 years ago
  • 1.0.0                                ...           8 years ago

© 2010 - cnpmjs.org x YWFE | Home | YWFE