glob-parent

中文文档
6.0.2发布于 2021/09/30ISCCommonJS近 30 天下载 12.6亿

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

中文使用文档
文档目录8 节
  1. 用法
  2. API
  3. globParent(maybeGlobString, [options])
  4. 逃离
  5. 限制
  6. 大括号&括号
  7. 窗户
  8. 许可证

glob-parent

NPM version Downloads Build Status Coveralls Status

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

用法

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开始前的部分路径。注意下面的转义规则和限制。

选项

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

逃离

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

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

例子

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

限制

大括号&括号

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

窗户

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

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

// 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。

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

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

许可证

ISC

版本与发布记录

glob-parent 共发布 16 个版本,首次发布于 2015/01/13;过去 12 个月发布了 0 个版本。

版本发布日期距今
6.0.2latest2021/09/305 年前
6.0.12021/07/205 年前
6.0.02021/05/045 年前
5.1.22021/03/075 年前
5.1.12020/03/226 年前
5.1.02019/09/227 年前

关于 glob-parent 的常见问题

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/04 – 2026/11/02 这 30 天内被下载 1,257,956,255 次,日均约 41,931,875 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

glob-parent 还在维护吗?

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