# make-dir 中文文档

规范地址：https://npmcn.com/package/make-dir/

版本：5\.1\.0
npm 元数据更新时间：2025-09-10T18:24:35.991Z
中文译文更新时间：2026-11-05T01:51:07.599Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/make-dir
原文对照：https://npmcn.com/package/make-dir/?lang=original
项目主页：https://github.com/sindresorhus/make-dir#readme
源码仓库：https://github.com/sindresorhus/make-dir

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：9.6 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2017-05-09T18:34:33.547Z
- 最新版本发布：2025-09-10T18:24:35.819Z
- 近 30 天下载量：545697697（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

如果需要，创建一个目录及其父目录-思考 `mkdir -p`

## 安装

```sh
npm install make-dir
```

也可以使用：`pnpm add make-dir`、`yarn add make-dir`、`bun add make-dir`

## README

# make-dir

> 如果需要，创建一个目录及其父目录-思考 `mkdir -p`

> \[！提示) 你可能想要内置的 [`fsPromises.mkdir('…', {recursive: true})`](https://nodejs.org/api/fs.html#fspromisesmkdirpath-options) 代替。

### 优势 `fsPromises.mkdir('…', {recursive: true})`

-   支持自定义 `fs` 实现。

### 优势 [`mkdirp`](https://github.com/isaacs/node-mkdirp)

-   承诺API _(异步/等待准备好了!)_
-   修复许多 `mkdirp` 问题
-   在macOS， Linux和Windows上进行了ci测试
-   积极维护
-   不绑定CLI
-   使用本地语言 `fs.mkdir/mkdirSync` [`recursive` 选项](https://nodejs.org/dist/latest/docs/api/fs.html#fs_fs_mkdir_path_options_callback) 在Node.js中除非 [覆盖](https://npmcn.com/package/make-dir/#readme-fs)

## 安装

```sh
npm install make-dir
```

## 用法

```console
$ pwd
/Users/sindresorhus/fun
$ tree
.
```

```js
import {makeDirectory} from 'make-dir';

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

console.log(path);
//=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
```

```console
$ tree
.
└── unicorn
    └── rainbow
        └── cake
```

多个目录:

```js
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(路径,选择?)

返回一个 `Promise` 为创建的目录的路径。

### makeDirectorySync(路径,选择?)

返回创建目录的路径。

#### 路径

类型: `string | URL`

要创建的目录。

#### 选项

类型: `object`

##### 模式

类型: `integer`  
默认值: `0o777`

的目录 [权限](https://x-team.com/blog/file-system-permissions-umask-node-js/)。

##### fs

类型: `object`  
默认值: `import fs from 'node:fs'`

使用自定义 `fs` 实现。例如 [`graceful-fs`](https://github.com/isaacs/node-graceful-fs)。

使用自定义 `fs` 实现将阻止本机的使用 `recursive` 如果选择 `fs.mkdir` 或 `fs.mkdirSync` 不是本机函数。

## 相关

-   [make-dir-cli](https://github.com/sindresorhus/make-dir-cli) —该模块的CLI
-   [▽](https://github.com/sindresorhus/del) —删除文件和目录
-   [斑驳的](https://github.com/sindresorhus/globby) -用户友好的glob匹配
-   [cpy](https://github.com/sindresorhus/cpy) -复制文件
-   [cpy-cli](https://github.com/sindresorhus/cpy-cli) —通过命令行复制文件
-   [将一个文件](https://github.com/sindresorhus/move-file) -移动文件

## 常见问题

### make-dir 是什么？

如果需要，创建一个目录及其父目录-思考 mkdir -p

### 如何安装 make-dir？

在项目目录运行 npm install make-dir，或使用 pnpm add / yarn add / bun add。

### make-dir 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### make-dir 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### make-dir 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### make-dir 可以商用吗？

make-dir 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### make-dir 的下载量有多少？

根据 npm 官方下载统计，make-dir 在 2026/10/05 – 2026/11/03 这 30 天内被下载 545,697,697 次，日均约 18,189,923 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### make-dir 还在维护吗？

最新版本 5\.1\.0 发布于 2025/09/11（1\.1 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2017/05/10。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

