# is-glob 中文文档

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

版本：4\.0\.3
npm 元数据更新时间：2023-06-22T16:32:26.552Z
中文译文更新时间：2026-11-04T16:25:55.563Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：13.6 kB，4 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=0\.10\.0
- 运行依赖：1 个
- 首次发布：2014-12-18T10:42:32.979Z
- 最新版本发布：2021-09-29T16:52:47.977Z
- 近 30 天下载量：749779950（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 0 个）

## 中文简介

返回 `true` 如果给定的字符串看起来像一个glob模式或extglob模式。这使得创建仅在必要时使用node-glob等外部模块的代码变得容易，从而加快了代码执行和初始化时间，并打赌

## 安装

```sh
npm install is-glob
```

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

## README

# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions)

> 返回 `true` 如果给定的字符串看起来像一个glob模式或一个extglob模式。这使得创建仅在必要时使用外部模块 (如node-glob) 的代码变得容易，从而导致更快的代码执行和初始化时间，以及更好的用户体验。

请考虑跟随这个项目的作者， [Jon Schlinkert](https://github.com/jonschlinkert),并考虑主演该项目，以展示您的: 心: 和支持。

## 安装

安装与 [npm](https://www.npmjs.com/)：

```sh
$ npm install --save is-glob
```

你可能也会感兴趣 [是有效的全局匹配模式](https://github.com/jonschlinkert/is-valid-glob) 和 [has-glob](https://github.com/jonschlinkert/has-glob)。

## 用法

```js
var isGlob = require('is-glob');
```

### 默认的行为

**真正的**

具有glob字符或正则表达式模式的模式将返回 `true`：

```js
isGlob('!foo.js');
isGlob('*.js');
isGlob('**/abc.js');
isGlob('abc/*.js');
isGlob('abc/(aaa|bbb).js');
isGlob('abc/[a-z].js');
isGlob('abc/{a,b}.js');
//=> true
```

Extglobs

```js
isGlob('abc/@(a).js');
isGlob('abc/!(a).js');
isGlob('abc/+(a).js');
isGlob('abc/*(a).js');
isGlob('abc/?(a).js');
//=> true
```

**错误**

转义的globs或extglobs返回 `false`：

```js
isGlob('abc/\\@(a).js');
isGlob('abc/\\!(a).js');
isGlob('abc/\\+(a).js');
isGlob('abc/\\*(a).js');
isGlob('abc/\\?(a).js');
isGlob('\\!foo.js');
isGlob('\\*.js');
isGlob('\\*\\*/abc.js');
isGlob('abc/\\*.js');
isGlob('abc/\\(aaa|bbb).js');
isGlob('abc/\\[a-z].js');
isGlob('abc/\\{a,b}.js');
//=> false
```

没有glob模式的模式返回 `false`：

```js
isGlob('abc.js');
isGlob('abc/def/ghi.js');
isGlob('foo.js');
isGlob('abc/@.js');
isGlob('abc/+.js');
isGlob('abc/?.js');
isGlob();
isGlob(null);
//=> false
```

阵列也是 `false` (如果要检查数组是否具有glob模式，请使用 [has-glob](https://github.com/jonschlinkert/has-glob)）：

```js
isGlob(['**/*.js']);
isGlob(['foo.js']);
//=> false
```

### 选项严格

当 `options.strict === false` 在确定模式是否是glob时，行为不太严格。意思是 一些模式将返回 `false` 可能返回 `true`.这样做是为了使匹配的库像 [micromatch](https://github.com/micromatch/micromatch) 有机会确定该模式是否是glob。

**真正的**

具有glob字符或正则表达式模式的模式将返回 `true`：

```js
isGlob('!foo.js', {strict: false});
isGlob('*.js', {strict: false});
isGlob('**/abc.js', {strict: false});
isGlob('abc/*.js', {strict: false});
isGlob('abc/(aaa|bbb).js', {strict: false});
isGlob('abc/[a-z].js', {strict: false});
isGlob('abc/{a,b}.js', {strict: false});
//=> true
```

Extglobs

```js
isGlob('abc/@(a).js', {strict: false});
isGlob('abc/!(a).js', {strict: false});
isGlob('abc/+(a).js', {strict: false});
isGlob('abc/*(a).js', {strict: false});
isGlob('abc/?(a).js', {strict: false});
//=> true
```

**错误**

转义的globs或extglobs返回 `false`：

```js
isGlob('\\!foo.js', {strict: false});
isGlob('\\*.js', {strict: false});
isGlob('\\*\\*/abc.js', {strict: false});
isGlob('abc/\\*.js', {strict: false});
isGlob('abc/\\(aaa|bbb).js', {strict: false});
isGlob('abc/\\[a-z].js', {strict: false});
isGlob('abc/\\{a,b}.js', {strict: false});
//=> false
```

## 关于

**贡献**

拉请求和明星总是受欢迎的。对于bug和特性请求， [请创建一个问题](https://npmcn.com/issues/new)。

**运行测试**

运行和审查单元测试是熟悉库及其API的好方法。可以使用以下命令安装依赖项并运行测试：

```sh
$ npm install && npm test
```
**建立文档**

_(这个项目的自述。Md由 [动词](https://github.com/verbose/verb-generate-readme)请不要直接编辑自述文件。对自述文件的任何更改都必须在 [.verb.md](https://npmcn.com/package/is-glob/.verb.md) 自述文件模板)。_

使用实例生成自述文件。

```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
```

### 相关项目

你也可能对这些项目感兴趣:

-   [组装](https://www.npmjs.com/package/assemble): 把袜子里的石头拿出来!Assemble让你快速创建web项目… [更多的](https://github.com/assemble/assemble) | [首页](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit")
-   [基础](https://www.npmjs.com/package/base): 使用构建块等插件快速创建高质量服务器端node.js应用程序的框架 | [首页](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks")
-   [更新](https://www.npmjs.com/package/update): 可扩展!Update是一个新的开源开发人员框架和CLI，用于自动更新… [更多的](https://github.com/update/update) | [首页](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.")
-   [动词](https://www.npmjs.com/package/verb): GitHub项目的文档生成器。动词是非常强大的，易于使用，并使用… [更多的](https://github.com/verbose/verb) | [首页](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.")

### 贡献者

| **提交** | **贡献者** |  
| --- | --- |  
| 47 | [jonschlinkert](https://github.com/jonschlinkert) |  
| 5 | [doowb](https://github.com/doowb) |  
| 1 | [酷毙了](https://github.com/phated) |  
| 1 | [丹珀](https://github.com/danhper) |  
| 1 | [鲍尔米尔](https://github.com/paulmillr) |

### 作者

**Jon Schlinkert**

-   [GitHub概要](https://github.com/jonschlinkert)
-   [Twitter](https://twitter.com/jonschlinkert)
-   [LinkedIn的资料](https://linkedin.com/in/jonschlinkert)

### 许可证

版权所有©2019 [Jon Schlinkert](https://github.com/jonschlinkert)。 根据 [麻省理工学院的许可](https://npmcn.com/package/is-glob/LICENSE)。

* * *

_该文件由 [动词-生成-自述文件](https://github.com/verbose/verb-generate-readme)， v0.8.0, 2019年3月27日。_

## 常见问题

### is-glob 是什么？

返回 true 如果给定的字符串看起来像一个glob模式或extglob模式。这使得创建仅在必要时使用node-glob等外部模块的代码变得容易，从而加快了代码执行和初始化时间，并打赌

### 如何安装 is-glob？

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

### is-glob 支持 TypeScript 吗？

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

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

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

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

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

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

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

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

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

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

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

