glob-parent
从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