# @bluelovers/fast-glob 中文文档

规范地址：https://npmcn.com/package/%40bluelovers/fast-glob/

版本：3\.0\.4
npm 元数据更新时间：2022-04-04T19:49:06.954Z
中文译文更新时间：2026-11-08T08:41:59.659Z
软件包许可：ISC

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

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

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

- 包体积（解压后）：31.6 kB，9 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2019-06-27T06:36:21.009Z
- 最新版本发布：2019-07-06T00:56:28.400Z
- 近 30 天下载量：75926（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

fast-glob 的旧打字符 api

## 安装

```sh
npm install @bluelovers/fast-glob
```

也可以使用：`pnpm add @bluelovers/fast-glob`、`yarn add @bluelovers/fast-glob`、`bun add @bluelovers/fast-glob`

## README

# 快速块

> 这是非常快和有效率的 [阴影](https://en.wikipedia.org/wiki/Glob_\(programming\)) 用于 [节点.js](https://nodejs.org/en)。 。 。 .

此软件包提供了对文件系统和返回路径名进行翻转的方法,这些路径名按照Unix Bash shell使用的规则与定义的一组指定模式相匹配,并附有一些简化,同时返回结果 **任意命令**快速,简单,有效.

## 这个叉子

> 叉从 [https://github.com/mrmlnc/fast-glob 页面存档备份,存于互联网档案馆](https://github.com/mrmlnc/fast-glob)

-   导出 `async`, (中文(简体) ), `default`
-   允许旧的打字符 api `async<T>`, (中文(简体) ), `sync<T>`
-   包装到 `bluebird` **(备选)**

### 使用量

> 基础

```ts
import FastGlob, { Options, EntryItem } from '@bluelovers/fast-glob';
```

* * *

> 蓝鸟

```ts
import FastGlob, { Options, EntryItem } from '@bluelovers/fast-glob/bluebird';
```

* * *

> 使用其他青鸟类或任何带有混音方法的物体

```ts
const promisify = require('@bluelovers/fast-glob/util').promisify;
const Bluebird = require("bluebird");
```

```ts
const FastGlob = promisify(require('@bluelovers/fast-glob'));

// use other Bluebird like or any object with promisify method
const FastGlob = promisify(require('@bluelovers/fast-glob'), Bluebird);
```

```ts
const my_promisify = (fn) => {
 return function (...argv)
 {
  return Promise.resolve().then(function ()
  {
   return fn(...argv)
  })
 }
}

const FastGlob = promisify(require('@bluelovers/fast-glob'), my_promisify);

const FastGlob = promisify(require('@bluelovers/fast-glob'), {
    promisify: my_promisify
});
```

## 目录

**细节**

-   [要点](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-highlights)
-   [捐款](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-donation)
-   [老式和现代式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-old-and-modern-mode)
-   [模式语法](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-pattern-syntax)
    -   [基本语法](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-basic-syntax)
    -   [高级语法](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-advanced-syntax)
-   [安装](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-installation)
-   [API 密码](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-api)
    -   [同步](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-asynchronous)
    -   [同步](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-synchronous)
    -   [流线](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-stream)
        -   [模式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-patterns)
        -   [\[可选](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-options)
-   [选项](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-options-1)
    -   [常见](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-common)
        -   [货币](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-concurrency)
        -   [数据](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-cwd)
        -   [深处](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-deep)
        -   [跟随符号链接](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-followsymboliclinks)
        -   [小时](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-fs)
        -   [忽略](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-ignore)
        -   [压制错误](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-suppresserrors)
        -   [掷出错误](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-throwerroronbrokensymboliclink)
    -   [输出控制](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-output-control)
        -   [绝对](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-absolute)
        -   [标记目录](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-markdirectories)
        -   [对象模式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-objectmode)
        -   [仅指董事](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-onlydirectories)
        -   [仅文件](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-onlyfiles)
        -   [数据](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-stats)
        -   [独一无二](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-unique)
    -   [匹配控件](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-matching-control)
        -   [缩放](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-braceexpansion)
        -   [区分大小写](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-casesensitivematch)
        -   [点](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-dot)
        -   [外观](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-extglob)
        -   [光荣之星](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-globstar)
        -   [基础Name 匹配](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-basenamematch)
-   [财务问题](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-faq)
    -   [如何在 Windows 上写入模式 ?](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-how-to-write-patterns-on-windows)
    -   [为什么括号里是错的?](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-why-are-parentheses-match-wrong)
    -   [如何将目录排除在阅读之外?](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-how-to-exclude-directory-from-reading)
    -   [如何使用UNC路径?](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-how-to-use-unc-path)
    -   [兼容 `node-glob`? 吗?](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-compatible-with-node-glob)
-   [基准](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-benchmarks)
    -   [服务器](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-server)
    -   [净盘](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-nettop)
-   [更改日志](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-changelog)
-   [许可证](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-license)

## 要点

-   快点 也许最快.
-   支持多与负模式.
-   同步,承诺和流 API.
-   对象模式 。 不止是绳子能还回来.
-   容忍错误.

## 捐款

你喜欢这个项目吗? 通过捐赠,创建问题或拉出请求来支持.

[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mrmlnc)

## 老式和现代式

这个软件包工作有两种模式,这取决于其使用的环境.

-   **旧模式**10.10下节点或 [`stats`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-stats) 选项 _启用_。 。 。 .
-   **现代模式**节点.js 10.10+和 [`stats`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-stats) 选项 _已禁用_。 。 。 .

现代模式更快. 学习更多关于 [内部机制](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode)。 。 。 .

## 模式语法

> :警告:在光标表达式中总是使用前鞭打(patters和 [`ignore`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-ignore) 选项)。 用回鞭来逃出字符 .

语法有多种形式:基础和高级. 下文简要概述所支持的特征。 还要注意我们 [财务问题](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-faq)。 。 。 .

> :书: 此软件包使用一个 [`micromatch`](https://github.com/micromatch/micromatch) 作为图案匹配的库.

### 基本语法

-   星号`*`) — 匹配除划线( 路径分隔符) 、 隐藏文件( 名称从 `.`) (中文(简体) ).
-   双星或光子星(`**`) — 匹配零或更多目录.
-   问号`?`) – 匹配除鞭打外的任何单个字符(路径分隔符).
-   顺序( N)`[seq]`)——相匹配任何字符的序列.

> : 书: 关于: [基本匹配行为](https://github.com/micromatch/picomatch#matching-behavior-vs-bash)。 。 。 .

一些例子:

-   `src/**/*.js` ——匹配其中的所有文件 `src` 目录( 任何水平的巢穴) `.js` 扩展名.
-   `src/*.??` ——匹配其中的所有文件 `src` 目录(只包含第一级巢穴)具有双特征扩展.
-   `file-[01].js` 匹配文件 : `file-0.js`, (中文(简体) ), `file-1.js`。 。 。 .

### 高级语法

-   [逃脱字符](https://github.com/micromatch/micromatch#backslashes) (单位:千美元)`\\`) ——匹配特殊字符(`$^*+?()[]`)为字.
-   [POSIX 字符类](https://github.com/micromatch/picomatch#posix-brackets) (单位:千美元)`[[:digit:]]`) (中文(简体) ).
-   [扩展缩略语](https://github.com/micromatch/micromatch#extglobs) (单位:千美元)`?(pattern-list)`) (中文(简体) ).
-   [巴什风格缩放](https://github.com/micromatch/braces) (单位:千美元)`{}`) (中文(简体) ).
-   [描述字符类](https://github.com/micromatch/micromatch#regex-character-classes) (单位:千美元)`[1-5]`) (中文(简体) ).
-   [Regex 组](https://www.regular-expressions.info/brackets.html) (单位:千美元)`(a|b)`) (中文(简体) ).

> : 书: 关于: [高级匹配行为](https://github.com/micromatch/micromatch#extended-globbing)。 。 。 .

一些例子:

-   `src/**/*.{css,scss)` ——匹配其中的所有文件 `src` 目录( 任何水平的巢穴) `.css` 或者说 `.scss` 扩展名.
-   `file-[[:digit:]].js` 匹配文件 : `file-0.js`, (中文(简体) ), `file-1.js`. . . . . . . , `file-9.js`。 。 。 .
-   `file-{1..3}.js` 匹配文件 : `file-1.js`, (中文(简体) ), `file-2.js`, (中文(简体) ), `file-3.js`。 。 。 .
-   `file-(1|2)` 匹配文件 : `file-1.js`, (中文(简体) ), `file-2.js`。 。 。 .

## 安装

```console
npm install fast-glob
```

## API 密码

### 同步

```js
fg(patterns, [options])
```

回返a `Promise` 带有一系列匹配条目.

```js
const fg = require('fast-glob');

const entries = await fg(['.editorconfig', '**/index.js'], { dot: true });

// ['.editorconfig', 'services/index.js']
```

### 同步

```js
fg.sync(patterns, [options])
```

返回一组匹配条目.

```js
const fg = require('fast-glob');

const entries = fg.sync(['.editorconfig', '**/index.js'], { dot: true });

// ['.editorconfig', 'services/index.js']
```

### 流线

```js
fg.stream(patterns, [options])
```

回返a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_readable_streams) 当 `data` 事件将随匹配条目而释放.

```js
const fg = require('fast-glob');

const stream = fg.sync(['.editorconfig', '**/index.js'], { dot: true });

for await (const entry of stream) {
    // .editorconfig
    // services/index.js
}
```

#### 模式

-   要求 : `true`
-   类型 : `string | string[]`

任何正确的模式.

> :1234: (英语) [模式语法](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-pattern-syntax)
> 
> :警告:这个包不尊重图案的顺序. 首先,所有消极规律都应用,只有这样,才应用正规律. 如果要获得一定的记录顺序,请使用排序或分打.

#### \[可选

-   要求 : `false`
-   类型 : [`Options`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-options-1)

见 [选项](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-options-1) 节.

## 选项

### 共同选项

#### 货币

-   类型 : `number`
-   默认 : `os.cpus().length`

指定阅读器对读取目录的同步请求的最大数量.

> :book:数字越多,文件系统中的性能和负载就越多. 如果您想以静默模式阅读, 请将值设置为舒适的数或 `1`。 。 。 .

#### 数据

-   类型 : `string`
-   默认 : `process.cwd()`

当前搜索的工作目录 .

#### 深处

-   类型 : `number`
-   默认 : `Infinity`

指定相对于起始目录的读取目录的最大深度.

例如,您有以下树:

```js
dir/
└── one/            // 1
    └── two/        // 2
        └── file.js // 3
```

```js
// With base directory
fg.sync('dir/**', { onlyFiles: false, deep: 1 }); // ['dir/one']
fg.sync('dir/**', { onlyFiles: false, deep: 2 }); // ['dir/one', 'dir/one/two']

// With cwd option
fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 1 }); // ['one']
fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 2 }); // ['one', 'one/two']
```

> :书: 如果您指定了带有一些碱性目录的图案,此目录将不参与所找到目录深度的计算. 把它当作一个 [`cwd`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-cwd) 选项.

#### 跟随符号链接

-   类型 : `boolean`
-   默认 : `true`

表示是否穿越符号链接目录的后人.

> :书:如果 [`stats`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-stats) 选项中指定符号链接的信息(`fs.lstat`将替换为条目信息(`fs.stat`{\\fn华文仿宋\\fs16\\1chd1d1d1}在后面.

#### 小时

-   类型 : `FileSystemAdapter`
-   默认 : `fs.*`

自定义文件系统工作方法的执行 .

```ts
export interface FileSystemAdapter {
    lstat?: typeof fs.lstat;
    stat?: typeof fs.stat;
    lstatSync?: typeof fs.lstatSync;
    statSync?: typeof fs.statSync;
    readdir?: typeof fs.readdir;
    readdirSync?: typeof fs.readdirSync;
}
```

#### 忽略

-   类型 : `string[]`
-   默认 : `[]`

排除匹配的一连串光彩图案 。 这是使用负面模式的另一种方式.

```js
dir/
├── package-lock.json
└── package.json
```

```js
fg.sync(['*.json', '!package-lock.json']);            // ['package.json']
fg.sync('*.json', { ignore: ['package-lock.json'] }); // ['package.json']
```

#### 压制错误

-   类型 : `boolean`
-   默认 : `false`

默认情况下, 此软件包只压制 `ENOENT` 错误。 设定为 `true` 以压制任何错误.

> : book:当目录有特殊访问级别的条目时,可以有用.

#### 掷出错误

-   类型 : `boolean`
-   默认 : `false`

当符号链接被打破时丢出错误( 如果 `true` 或安全返回 `lstat` 如果 `false`。 。 。 .

> :书: 此选项对读取符号链接目录时的错误没有影响 .

### 输出控制

#### 绝对

-   类型 : `boolean`
-   默认 : `false`

返回条目的绝对路径 .

```js
fg.sync('*.js', { absolute: false }); // ['index.js']
fg.sync('*.js', { absolute: true });  // ['/home/user/index.js']
```

> :书: 如果您想要使用带有绝对路径的负模式, 需要此选项, 例如 , `!${__dirname}/*.js`。 。 。 .

#### 标记目录

-   类型 : `boolean`
-   默认 : `false`

用最后斜线标记目录路径 .

```js
fs.sync('*', { onlyFiles: false, markDirectories: false }); // ['index.js', 'controllers']
fs.sync('*', { onlyFiles: false, markDirectories: true });  // ['index.js', 'controllers/']
```

#### 对象模式

-   类型 : `boolean`
-   默认 : `false`

返回描述条目的对象(而不是字符串).

```js
fg.sync('*', { objectMode: false }); // ['src/index.js']
fg.sync('*', { objectMode: true });  // [{ name: 'index.js', path: 'src/index.js', dirent: <fs.Dirent> }]
```

本天体有以下字段:

-   名称( e)`string`)——路径的最后部分(基名)
-   路径( r)`string`) – 相对于模式基目录的完整路径
-   双层[`fs.Dirent`](https://nodejs.org/api/fs.html#fs_class_fs_dirent)() 实例 `fs.Direct`

> :书: 一个物体是条目的内部表示,所以获取它不影响性能.

#### 仅指董事

-   类型 : `boolean`
-   默认 : `false`

只返回目录 .

```js
fg.sync('*', { onlyDirectories: false }); // ['index.js', 'src']
fg.sync('*', { onlyDirectories: true });  // ['src']
```

> : 书:如果 `true`,则 [`onlyFiles`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-onlyfiles) 选项是自动 `false`。 。 。 .

#### 仅文件

-   类型 : `boolean`
-   默认 : `false`

只返回文件 .

```js
fg.sync('*', { onlyFiles: false }); // ['index.js', 'src']
fg.sync('*', { onlyFiles: true });  // ['index.js']
```

#### 数据

-   类型 : `boolean`
-   默认 : `false`

启用一个 [对象模式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-objectmode) 附加字段:

-   数据([`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats)() 实例 `fs.Stats`

```js
fg.sync('*', { stats: false }); // ['src/index.js']
fg.sync('*', { stats: true });  // [{ name: 'index.js', path: 'src/index.js', dirent: <fs.Dirent>, stats: <fs.Stats> }]
```

> : 书: 返回 `fs.stat` 改为 `fs.lstat` 符号链接 [`followSymbolicLinks`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-followsymboliclinks) 选项.
> 
> : 警告: 与 [对象模式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-objectmode) 此模式需要额外调用文件系统 。 平均来说,这种模式至少慢了两次. 见 [旧模式和现代模式](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-old-and-modern-mode) 更多细节.

#### 独一无二

-   类型 : `boolean`
-   默认 : `true`

确保返回的条目是独一无二的.

```js
fg.sync(['*.json', 'package.json'], { unique: false }); // ['package.json', 'package.json']
fg.sync(['*.json', 'package.json'], { unique: true });  // ['package.json']
```

若为 `true` 并找到类似的条目,结果为第一个找到.

### 匹配控件

#### 缩放

-   类型 : `boolean`
-   默认 : `true`

启用类似 Bash 的牙套扩展 .

> :1234: (英语) [语法描述](https://wiki.bash-hackers.org/syntax/expansion/brace) 或超过 [详细说明](https://github.com/micromatch/braces)。 。 。 .

```js
dir/
├── abd
├── acd
└── a{b,c}d
```

```js
fg.sync('a{b,c}d', { braceExpansion: false }); // ['a{b,c}d']
fg.sync('a{b,c}d', { braceExpansion: true });  // ['abd', 'acd']
```

#### 区分大小写

-   类型 : `boolean`
-   默认 : `true`

启用 a [区分大小写](https://en.wikipedia.org/wiki/Case_sensitivity) 匹配文件的模式.

```js
dir/
├── file.txt
└── File.txt
```

```js
fg.sync('file.txt', { caseSensitiveMatch: false }); // ['file.txt', 'File.txt']
fg.sync('file.txt', { caseSensitiveMatch: true });  // ['file.txt']
```

#### 点

-   类型 : `boolean`
-   默认 : `false`

允许模式匹配从某一时期开始的条目(`.`) (中文(简体) ).

> :book:注意在图案的一部分中,一个明确的点将永远匹配点文件.

```js
dir/
├── .editorconfig
└── package.json
```

```js
fg.sync('file.txt', { dot: false }); // ['package.json']
fg.sync('file.txt', { dot: true });  // ['.editorconfig', 'package.json']
```

#### 外观

-   类型 : `boolean`
-   默认 : `true`

启用类似 Bash 的 `extglob` 函数.

> :1234: (英语) [语法描述](https://github.com/micromatch/micromatch#extglobs)。 。 。 .

```js
dir/
├── README.md
└── package.json
```

```js
fg.sync('*.+(json|md)', { extglob: false }); // []
fg.sync('*.+(json|md)', { extglob: true });  // ['README.md', 'package.json']
```

#### 光荣之星

-   类型 : `boolean`
-   默认 : `true`

允许递归重复包含的图案 `**`如果 `false`, (中文(简体) ), `**` 行为就像 `*`。 。 。 .

```js
dir/
└── a
    └── b
```

```js
fg.sync('**', { onlyFiles: false, globstar: false }); // ['a']
fg.sync('**', { onlyFiles: false, globstar: true });  // ['a', 'a/b']
```

#### 基础Name 匹配

-   类型 : `boolean`
-   默认 : `false`

如果设置为 `true`,那么,如果路径含有斜线,则没有斜线的图案将会与路径的基名相匹配.

```js
dir/
└── one/
    └── file.md
```

```js
fg.sync('*.md', { baseNameMatch: false }); // []
fg.sync('*.md', { baseNameMatch: true });  // ['one/file.md']
```

## 财务问题

## 如何在 Windows 上写入模式 ?

在光彩表达式中总是使用向前鞭打( patters and [`ignore`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-ignore) 选项)。 用回鞭来逃出字符 。 与 [`cwd`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-cwd) 选项使用方便的格式.

**坏东西**

```ts
[
    'directory\\*',
    path.join(process.cwd(), '**')
]
```

**不错**

```ts
[
    'directory/*',
    path.join(process.cwd(), '**').replace(/\\/g, '/')
]
```

> : 书:使用 [`normalize-path`](https://www.npmjs.com/package/normalize-path) 或 [`unixify`](https://www.npmjs.com/package/unixify) 包将 Windows 风格的路径转换为 Unix 风格的路径.

更多信息 [与后鞭相匹配](https://github.com/micromatch/micromatch#backslashes)。 。 。 .

## 为什么括号里是错的?

```js
dir/
└── (special-*file).txt
```

```js
fg.sync(['(special-*file).txt']) // []
```

指巴什语. 你需要逃脱特殊的角色:

```js
fg.sync(['\\(special-*file\\).txt']) // ['(special-*file).txt']
```

更多信息 [将特殊字符匹配为文字](https://github.com/micromatch/picomatch#matching-special-characters-as-literals)。 。 。 .

## 如何将目录排除在阅读之外?

您可以使用这样的负图案 : `!**/node_modules` 或者说 `!**/node_modules/**`。还可以使用 [`ignore`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-ignore) 选项。 看看下面的例子.

```js
first/
├── file.md
└── second/
    └── file.txt
```

如果你不想读 `second` 目录中,您必须写入以下模式: `!**/second` 或者说 `!**/second/**`。 。 。 .

```js
fg.sync(['**/*.md', '!**/second']);                 // ['first/file.md']
fg.sync(['**/*.md'], { ignore: ['**/second/**'] }); // ['first/file.md']
```

> : 警告: 当您写时 `!**/second/**/*` 这意味着目录将会是 **读取**,但所有条目将不会包含在结果中.

你必须明白,如果写出图案以排除目录,那么该目录在任何情况下都不会被读取.

## 如何使用UNC路径?

您无法使用 [《统一名称公约》](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/62e862f4-2a51-452e-8eeb-dc4ff5ee33cc) 路径作为图案(由于语法原因),但可以用作 [`cwd`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-cwd) 目录.

```ts
fg.sync('*', { cwd: '\\\\?\\C:\\Python27' /* or //?/C:/Python27 */ });
fg.sync('Python27/*', { cwd: '\\\\?\\C:\\' /* or //?/C:/ */ });
```

## 兼容 `node-glob`? 吗?

| 节点- glob | 快速块 |
| :-: | :-: |
| `cwd` | [`cwd`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-cwd) |
| `root` | – 说吧 – |
| `dot` | [`dot`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-dot) |
| `nomount` | – 说吧 – |
| `mark` | [`markDirectories`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-markdirectories) |
| `nosort` | – 说吧 – |
| `nounique` | [`unique`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-unique) |
| `nobrace` | [`braceExpansion`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-braceexpansion) |
| `noglobstar` | [`globstar`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-globstar) |
| `noext` | [`extglob`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-extglob) |
| `nocase` | [`caseSensitiveMatch`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-casesensitivematch) |
| `matchBase` | [`baseNameMatch`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-basenamematch) |
| `nodir` | [`onlyFiles`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-onlyfiles) |
| `ignore` | [`ignore`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-ignore) |
| `follow` | [`followSymbolicLinks`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-followsymboliclinks) |
| `realpath` | – 说吧 – |
| `absolute` | [`absolute`](https://npmcn.com/package/%40bluelovers/fast-glob/#readme-absolute) |

## 基准

### 服务器

链接 : [裸体金属](https://www.vultr.com/pricing/baremetal)

-   处理器: E3-1270v6 (8 CPU)
-   内存: 32GB
-   磁盘: SSD ([DC S3520 SSDSC2BB240G7 英特尔](https://ark.intel.com/content/www/us/en/ark/products/93012/intel-ssd-dc-s3520-series-240gb-2-5in-sata-6gb-s-3d1-mlc.html)(中文(简体) )

你可以看到结果 [这里](https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fast_glob_benchmark_server-txt) 为最新发布.

### 净盘

链接 : [Zotac bi323 (英语)](https://www.zotac.com/ee/product/mini_pcs/zbox-bi323)

-   处理器:Intel N3150 (4 CPU)
-   内存: 8GB
-   磁盘: SSD ([硅动力 SP060GBSS3S55S25](https://www.silicon-power.com/web/product-1)(中文(简体) )

你可以看到结果 [这里](https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fast_glob_benchmark_nettop-txt) 为最新发布.

## 更改日志

见 [我们的GitHub项目的发布部分](https://github.com/mrmlnc/fast-glob/releases) 每个版本的更改日志.

## 许可证

本软件以麻省理工学院许可条款发布.

## 常见问题

### @bluelovers/fast-glob 是什么？

fast-glob 的旧打字符 api

### 如何安装 @bluelovers/fast-glob？

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

### @bluelovers/fast-glob 支持 TypeScript 吗？

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

### @bluelovers/fast-glob 支持 ESM 还是 CommonJS？

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

### @bluelovers/fast-glob 可以商用吗？

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

### @bluelovers/fast-glob 的下载量有多少？

根据 npm 官方下载统计，@bluelovers/fast-glob 在 2026/10/09 – 2026/11/07 这 30 天内被下载 75,926 次，日均约 2,531 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bluelovers/fast-glob 还在维护吗？

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

