# glob-parent 中文文档

规范地址：https://npmcn.com/package/glob-parent/

版本：6\.0\.2
npm 元数据更新时间：2026-10-27T16:26:32.435Z
中文译文更新时间：2026-11-04T11:20:29.353Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：7.7 kB，4 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=10\.13\.0
- 运行依赖：1 个
- 首次发布：2015-01-12T20:32:54.422Z
- 最新版本发布：2021-09-29T22:14:24.467Z
- 近 30 天下载量：1294574823（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 0 个）

## 中文简介

从glob字符串中提取非魔法父路径。

## 安装

```sh
npm install glob-parent
```

也可以使用：`pnpm add glob-parent`、`yarn add glob-parent`、`bun add glob-parent`

## README

[![](https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png)](https://gulpjs.com/)

# glob-parent

[![NPM version](https://img.shields.io/npm/v/glob-parent.svg?style=flat-square)](https://www.npmjs.com/package/glob-parent) [![Downloads](https://img.shields.io/npm/dm/glob-parent.svg?style=flat-square)](https://www.npmjs.com/package/glob-parent) [![Build Status](https://img.shields.io/github/workflow/status/gulpjs/glob-parent/dev?style=flat-square)](https://github.com/gulpjs/glob-parent/actions?query=workflow:dev) [![Coveralls Status](https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg?style=flat-square)](https://coveralls.io/r/gulpjs/glob-parent)

从glob字符串中提取非魔法父路径。

## 用法

```js
var globParent = require('glob-parent');

globParent('path/to/*.js'); // 'path/to'
globParent('/root/path/to/*.js'); // '/root/path/to'
globParent('/*.js'); // '/'
globParent('*.js'); // '.'
globParent('**/*.js'); // '.'
globParent('path/{to,from}'); // 'path'
globParent('path/!(to|from)'); // 'path'
globParent('path/?(to|from)'); // 'path'
globParent('path/+(to|from)'); // 'path'
globParent('path/*(to|from)'); // 'path'
globParent('path/@(to|from)'); // 'path'
globParent('path/**/*'); // 'path'

// if provided a non-glob path, returns the nearest dir
globParent('path/foo/bar.js'); // 'path/foo'
globParent('path/foo/'); // 'path/foo'
globParent('path/foo'); // 'path' (see issue #3 for details)
```

## API

### `globParent(maybeGlobString, [options])`

接受一个字符串并返回glob开始前的部分路径。注意下面的转义规则和限制。

#### 选项

```js
{
  // Disables the automatic conversion of slashes for Windows
  flipBackslashes: true;
}
```

## 逃离

以下字符在glob模式中具有特殊意义，如果您希望将其作为常规路径字符处理，则必须对其进行转义：

-   `?` （问号）除非单独用作路径段
-   `*` (星号)
-   `|` (管)
-   `(` (开括号)
-   `)` (结束括号)
-   `{` （左花括号）
-   `}` （右花括号）
-   `[` (开括号)
-   `]` (括号)

**例子**

```js
globParent('foo/[bar]/'); // 'foo'
globParent('foo/\\[bar]/'); // 'foo/[bar]'
```

## 限制

### 大括号&括号

这个库尝试了一种快速但不完美的方法来确定路径 部件具有glob魔力，而无需完全解析/词法分析模式。有一些 高级用例可能会使它出错，例如嵌套大括号，其中外部 Pair被转义，内部的包含一个路径分隔符。如果你发现 让你自己处在不太可能受到影响或需要受到影响的环境中 在库中确保更高保真度的全局处理，建议您 预处理输入 [expand-braces](https://github.com/jonschlinkert/expand-braces) 和/或 [expand-brackets](https://github.com/jonschlinkert/expand-brackets)。

### 窗户

反斜杠不是globs的有效路径分隔符。如果路径带有反斜杠 在简单的情况下，global -parent将替换路径 分隔符，并返回非glob父路径(现在带有 正斜杠，它仍然是有效的Windows路径分隔符)。

这不能与转义字符一起使用。

```js
// BAD
globParent('C:\\Program Files \\(x86\\)\\*.ext'); // 'C:/Program Files /(x86/)'

// GOOD
globParent('C:/Program Files\\(x86\\)/*.ext'); // 'C:/Program Files (x86)'
```

如果您在没有路径部分的模式中使用转义字符(例如： 相对于 `cwd`)，以 `./` 为了避免混淆global -parent。

```js
// BAD
globParent('foo \\[bar]'); // 'foo '
globParent('foo \\[bar]*'); // 'foo '

// GOOD
globParent('./foo \\[bar]'); // 'foo [bar]'
globParent('./foo \\[bar]*'); // '.'
```

## 许可证

ISC

## 常见问题

### glob-parent 是什么？

从glob字符串中提取非魔法父路径。

### 如何安装 glob-parent？

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

### glob-parent 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/glob-parent 是否存在。

### glob-parent 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### glob-parent 需要什么版本的 Node\.js？

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

### glob-parent 可以商用吗？

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

### glob-parent 的下载量有多少？

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

### glob-parent 还在维护吗？

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

