如何修复./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' ]
glob版本7.1.3
答案 0 :(得分:1)
基本上,您希望排除案件中的文件夹,这可以通过在末尾添加(^/)
来完成。
完整的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.
的更多信息