运行时依赖
安装命令
点击复制技能文档
Picomatch 是一个快速、零依赖的 JavaScript glob 模式匹配库,支持标准和扩展的 Bash glob 功能。
触发场景:当用户需要文件路径匹配、glob 通配符(、、?、[...])、.gitignore 风格的排除规则、构建工具文件过滤、CLI 路径过滤、文件监视器允许/拒绝列表等时使用。 触发关键词:picomatch、glob 匹配、.js、/.ts、通配符、.gitignore 模式匹配、文件过滤、minimatch 替代品。
安装:npm install picomatch
核心 API: picomatch(glob[, options]) → matcher 主入口:接受一个 glob 模式并返回一个匹配器函数。 const pm = require('picomatch'); const isMatch = pm('.js'); isMatch('a.js'); // true isMatch('a.md'); // false isMatch('a/b.js'); // false ( 不跨越 /)
picomatch.isMatch(string, patterns[, options]) 直接检查一个字符串是否与任何模式匹配,无需手动调用匹配器。 picomatch.isMatch('a.a', ['b.', '.a']); // true picomatch.isMatch('a.a', 'b.'); // false
picomatch.matchBase(input, glob) 仅匹配路径的 basename(忽略目录)。 picomatch.matchBase('foo/bar.js', '.js'); // true
picomatch.scan(input[, options]) 将 glob 模式解析为一个结构化对象。 picomatch.scan('!./foo/.js', { tokens: true }); // { prefix: '!./', base: 'foo', glob: '.js', negated: true, tokens: [...] }
picomatch.parse(pattern[, options]) → state 将 glob 转换为一个中间状态对象,可以与 .compileRe / .makeRe一起使用。
picomatch.makeRe(pattern[, options]) → RegExp 直接将 glob 转换为 RegExp。 picomatch.makeRe('.js'); // /^(?:(?!\.)(?=.)[^/]?\.js)$/
picomatch.toRegex(source[, options]) → RegExp 从正则源字符串创建 RegExp。
常见选项: 选项 类型 描述 dot boolean 允许匹配点文件,默认 false nocase boolean 大小写不敏感匹配 matchBase boolean 仅匹配 basename noglobstar boolean 禁用 匹配嵌套目录 noextglob boolean 禁用 extglob (+(a|b)) nobrace boolean 禁用花括号展开 ({a,b}) globstar boolean 将单个 视为 globstar(bash 选项) windows boolean 支持 Windows 反斜杠路径 ignore array 排除列表(黑名单) onMatch function 匹配成功回调 onIgnore function 忽略回调 onResult function 所有结果回调
glob 语法快速参考: 语法 描述 匹配任何字符(除 / 和点文件) 匹配任何字符,包括路径分隔符 ? 匹配单个字符 [abc] 匹配方括号内的任何字符 {a,b} 匹配 a 或 b(花括号展开) +(a|b) Extglob:匹配一次或多次 !(pattern) 排除匹配 ! 前缀 否定模式
实用模式示例: const pm = require('picomatch'); // JS/TS 文件 pm('/.{js,ts,mjs}'); // 忽略 node_modules pm('', { ignore: 'node_modules/' }); // 具有子目录的特定扩展名 pm('src/*/.md'); // 点文件(隐藏文件) pm('.', { dot: true }); // 大小写不敏感(Windows/macOS) pm('.JPG', { nocase: true }); // Windows 路径 pm('src\\*\\.js', { windows: true });
常见用例: 文件监视器允许/拒绝列表 —— watchman / chokidar 的 glob 过滤 .gitignore 解析 —— 解析忽略模式列表 CLI 路径过滤 —— glob / fast-glob 的底层引擎 构建产物匹配 —— 确定文件是否属于 dist 输出 minimatch 替代品 —— 类似的 API 但具有更好的性能(micromatch 生态系统)
详细参考: 有关完整的 API 签名、选项描述、扫描选项和选项示例,请参阅 references/api_reference.md。