2017-01-05 7 views
4

Учитывая структуру каталогов, кроме:Globs и NPM Minimatch: Совпадение всех файлов и директорий рекурсивно для определенных каталогов

/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 

Как бы я только исключить каталог node_modules используя extglob?

/!(node_modules) 

выше соответствует всем на корневом уровне, за исключением каталога node_modules и текстовый файл (который мы хотим включить). Он также не следует рекурсивно согласовывать каталоги.

/!(node_modules)/** 

Этот объект ближе, но он также исключает все файлы в корневом каталоге. Даже если он содержит файлы на корневом уровне, я предполагаю, что это исключит файл node_modules.txt.

P.S. Это для сопоставления файлов с использованием grunt-ssh и minimatch узлов.

+1

Вы пробовали этот '/ (node_modules) {,/**}' –

+0

Привет Ларри, я на самом деле пришел к такому выводу некоторое время назад, но забыл, что я имел задал этот вопрос на SO. Если вы хотите официально ответить этим ответом, я дам вам преимущество. – craignewkirk

+0

Спасибо, @craignewkirk, официальный ответ может сделать этот вопрос совершенно и легко найти для других. –

ответ

1

Это один может решить вашу проблему: /!(node_modules){,/**}