我正在寻找一个匹配所有后代目录的 glob,但特定名称除外。例如,foo/**/*.js
匹配所有 *.js
文件,它们都是 foo/
的后代,这很好;我想要的那个模式的扩展忽略了 __tests__
目录下的任何后代。
foo/
file01.js
__tests__/
ignore01.js
bar/
file02.js
__tests__/
ignore02.js
qux
ignore04.js
baz/
file03.js
__tests__/
ignore03.js
我尝试过的:
foo/**!(__tests__)/*.js
foo/!(__tests__)**/*.js
foo/**!(__tests__)**/*.js
foo/**/!(__tests__)/*.js
foo/!(__tests__)/**/*.js
最佳答案
这不是最优雅的解决方案,但在这里使用扩展应该可行:
foo/{,**/!(__tests__)/}*.js
这扩展到两个应该匹配您的路径的条件,即
foo/*.js
foo/**/!(__tests__)/*.js
您可以阅读有关 glob 的更多信息 over here .
关于javascript - 使用 `**` 但忽略与指定名称匹配的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56013477/