1

我正在寻找一个匹配除特定名称之外的所有后代目录的 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
4

1 回答 1

1

不是最优雅的解决方案,但使用扩展应该在这里工作:

foo/{,**/!(__tests__)/}*.js

这扩展到两个应该匹配您的路径的条件,即

foo/*.js
foo/**/!(__tests__)/*.js

您可以在此处阅读有关 glob的更多信息。

于 2019-05-06T23:30:52.083 回答