1
grunt(minimatch / glob)文件夹排除
我遇到一种情况,我试图使用grunt来清理代码库,但不包括特定文件夹。 grunt在引擎盖下使用minimatch(类似于bsdglob)来匹配文件,但是我似乎无法弄清楚如何排除文件夹的.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 这将匹配所有内容,包括ignoreme: /**/*.js 所以我想我可以做些类似的事情: /**/!(ignoreme)/**/*.js 但这与ignoreme文件夹中的文件匹配。 我已经习惯了正则表达式,但是似乎无法在这里弄清楚如何重复一个模式或类似的东西-我也尝试过类似的东西: /(!(ignoreme)|*)*/*.js 希望容器会重复,但是那行不通,只是无法匹配所有内容。 有什么方法可以通过正则表达式来查找文件路径,还是可以为我工作? 更新: 这是我目前处理此问题的方式: var pattern = /\/ignoreme\// var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){ return !pattern.test(f) }) 如果在minimatch中可能排除文件夹,我仍然会感兴趣。