最佳答案
我有一个情况,我试图使用咕哝线程代码库,不包括特定的文件夹。
Grunt 在引擎盖下使用极小匹配(类似于 bsdglobb)来匹配文件,但是我似乎不知道如何做一个。排除文件夹的 gitignore 样式。
我要吞下这个:
ignoreme
然后配上这些:
/folder/path/here/to/something/ok.js
/another/folder/path.js
/test.js
但不符合这些:
/folder/ignoreme/something.js
/folder/path/here/to/ignoreme/metoo/file.js
这将与一切相匹配,包括忽视:
/**/*.js
所以我想我可以这样做:
/**/!(ignoreme)/**/*.js
但是它匹配的文件在 Ignoreme 文件夹中。
我已经习惯了正则表达式,但似乎不知道如何在这里重复一个模式或东西-我还尝试了这样的东西:
/(!(ignoreme)|*)*/*.js
希望容器会重复,但是没有用,它只是不能匹配所有东西。
有什么方法可以传递一个正则表达式来生成文件路径,或者让这个工作为我服务吗?
以下是我目前处理这个问题的方式:
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
我仍然感兴趣,如果文件夹排除可能在小型匹配。