匹配所有文件,具有特定扩展名的文件除外
Match all files, except ones with specific extensions
如何修复 ./src/js/**/!(*.spec.js|*.test.js)
,使其不包含 return 目录?我试过这样./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' ]
glob 版本 7.1.3
基本上你想排除你的情况下的文件夹,这可以通过在末尾添加 (^/)
来完成。
完整的 glob 应该是 ./src/js/**/!(*.spec.js|*.test.js|^/)
您可以验证微匹配语法here
更新:
npm 模块 glob 有一个名为 nodir
的选项。如果设置为 true,则输出中不会有任何目录路径。
示例:
var glob = require("glob")
glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
console.log(er, files)
})
您可以找到有关所有可用选项的更多信息in their section about options.
如何修复 ./src/js/**/!(*.spec.js|*.test.js)
,使其不包含 return 目录?我试过这样./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' ]
glob 版本 7.1.3
基本上你想排除你的情况下的文件夹,这可以通过在末尾添加 (^/)
来完成。
完整的 glob 应该是 ./src/js/**/!(*.spec.js|*.test.js|^/)
您可以验证微匹配语法here
更新:
npm 模块 glob 有一个名为 nodir
的选项。如果设置为 true,则输出中不会有任何目录路径。
示例:
var glob = require("glob")
glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
console.log(er, files)
})
您可以找到有关所有可用选项的更多信息in their section about options.