Skip to content

Repository files navigation

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
  • CI-tested on macOS, Linux, and Windows
  • Actively maintained
  • Doesn't bundle a CLI
  • Uses the native fs.mkdir/mkdirSyncrecursive option in Node.js unless overridden

Install

npm install make-dir

Usage

$ pwd/Users/sindresorhus/fun
$ tree.
import{makeDirectory}from'make-dir';constpath=awaitmakeDirectory('unicorn/rainbow/cake');console.log(path);//=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
$ tree.└── unicorn └── rainbow └── cake

Multiple directories:

import{makeDirectory}from'make-dir';constpaths=awaitPromise.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 | URL

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

About

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

Resources

Code of conduct

Contributing

Security policy

Stars

481 stars

Watchers

9 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages