匹配所有文件,具有特定扩展名的文件除外
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匹配所有文件,具有特定扩展名的文件除外相关的知识,希望对你有一定的参考价值。
我怎样才能修复./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
答案
基本上你想要在你的情况下排除文件夹,这可以通过在最后添加(^/)
来完成。
完整的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.的更多信息
以上是关于匹配所有文件,具有特定扩展名的文件除外的主要内容,如果未能解决你的问题,请参考以下文章