如何编写Glob模式匹配api/db/seeds/下文件及根目录README.md
匹配指定路径的Glob正确写法
你需要实现两类路径的匹配:
- 匹配
api/db/seeds/文件夹下的所有文件 - 匹配项目根目录下的
README.md文件
原写法{**/seeds/*,README.md}无法生效的核心原因:
- 大部分Glob解析器默认关闭大括号扩展(brace expansion)能力,不会自动识别
{a,b}格式的多规则合并写法,必须手动开启对应配置才能正常解析 - 原规则里的
**/seeds/*会匹配项目中任意层级下名为seeds的文件夹下的直接文件,并非精准指向目标路径api/db/seeds/,既容易产生误匹配,在部分严格路径校验场景下也会直接匹配失败。
推荐方案
兼容性最高的写法(无需额外配置,适配所有Glob实现)
直接传入两条独立的匹配规则即可,不需要强行合并为单条:
api/db/seeds/**/* README.md
- 规则补充:如果只需要匹配
api/db/seeds/目录下直接存放的文件、不需要覆盖该目录下嵌套子文件夹内的内容,把第一条规则替换为api/db/seeds/*即可;**/*会递归匹配目标目录下所有层级的文件。
单条合并规则写法(需对应配置支持)
如果你使用的Glob解析器已经手动开启了大括号扩展支持,可以使用精准路径的合并写法:
{api/db/seeds/**/*,README.md}
- 注意:不要使用
**/seeds/*这类宽泛的通配符路径,否则会误匹配到项目其他位置同名的seeds目录内容。
内容的提问来源于stack exchange,提问作者Vencho
相关产品推荐
相关产品推荐

