0

我该如何修复./src/js/**/!(*.spec.js|*.test.js),所以它不返回目录?我试过这样./src/js/**/*.!(spec.js|test.js),但它匹配除目录之外的所有文件,与./src/js/**/*. 的示例输出./src/js/**/!(*.spec.js|*.test.js)

[ './src/js/__tests__',
  './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

期望的输出:

[ './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

全球版本7.1.3

4

1 回答 1

1

基本上你想在你的情况下排除文件夹,这可以通过(^/)在最后添加来完成。

完整的 glob 应该是./src/js/**/!(*.spec.js|*.test.js|^/)

您可以在此处验证微匹配语法

更新:

使用 npm 模块 glob 有一个名为nodir. 如果设置为 true,则输出中不会有任何目录路径。

例子:

var glob = require("glob")

glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
  console.log(er, files)
})

您可以在有关选项的部分中找到有关所有可用选项的更多信息。

于 2019-03-05T19:50:13.100 回答