Npm 匹配所有文件,具有特定扩展名的文件除外
如何修复Npm 匹配所有文件,具有特定扩展名的文件除外,npm,wildcard,glob,minmatch,Npm,Wildcard,Glob,Minmatch,如何修复/src/js/**/!(*.spec.js |*.test.js),所以它不返回目录?我试过像这样的/src/js/***。!(spec.js | test.js),但它匹配除目录之外的所有文件,与/src/js/***相同。/src/js/**/的输出示例!(*.spec.js |*.test.js): 期望输出: [ './src/js/__tests__/example.js', './src/js/example.js', './src/js/index.js' ]
/src/js/**/!(*.spec.js |*.test.js)
,所以它不返回目录?我试过像这样的/src/js/***。!(spec.js | test.js)
,但它匹配除目录之外的所有文件,与/src/js/***
相同。/src/js/**/的输出示例!(*.spec.js |*.test.js)
:
期望输出:
[ './src/js/__tests__/example.js',
'./src/js/example.js',
'./src/js/index.js' ]
版本7.1.3基本上,您希望排除案例中的文件夹,这可以通过在末尾添加
(^/)
来完成
完整的glob应该是/src/js/**/!(*.spec.js |*.test.js |^/)
您可以验证micromatch语法
更新:
对于npm模块glob,有一个名为nodir
的选项。如果设置为true,则输出中不会有任何目录路径
例如:
var glob = require("glob")
glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
console.log(er, files)
})
你可以找到关于所有可用选项的更多信息我澄清得不够清楚,我发布的通配符返回了所需的文件,但它还包括它找到的任何目录,我需要让它只返回文件。啊,这一澄清更有意义。基本上,您希望排除案例中的文件夹,这可以通过在末尾添加
(^/)
来完成。完整的glob应该是/src/js/**/!(*.spec.js |*.test.js)(^/)
当我执行此命令时,会得到一个空数组。啊,如果您使用的是模块glob,您可以将nodir选项设置为true。我将在答案中添加一个示例。
var glob = require("glob")
glob("./src/js/**/!(*.spec.js|*.test.js)", { nodir: true }, (er, files) => {
console.log(er, files)
})