Globs&NPM Minimatch:除特定目录外,recursion匹配所有文件和目录

鉴于目录结构:

/Users/doge/very/amaze.js /usr/local/bin/wow /node_modules/ /css/ /css/somefile.css /lib/ /somelib/ /anotherlib/somedir/finallib.js /index.html /somefile.test /somelib/file.html /firstdir/seconddir/file.css /node_modules.txt 

我将如何仅使用extglob排除node_modules目录?

 /!(node_modules) 

以上内容匹配除了node_modules目录和文本文件(我们希望包含的文件)之外的所有内容。 它也不会遵循recursion匹配的目录。

 /!(node_modules)/** 

这个更接近,但是它也排除了根目录中的所有文件。 即使它包含在根级别的文件,我猜它会排除node_modules.txt文件。

PS这是用于使用grunt-ssh和minimatch节点模块进行文件匹配。

这个可以解决你的问题: /!(node_modules){,/**}