craig
craig

Reputation: 497

Globs & NPM Minimatch: Match all files and directories recursively except for specific directories

Given the directory structure:

/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

How would I only exclude the node_modules directory using extglob?

/!(node_modules)

The above matches everything at the root level except the node_modules directory and text file (which we want to include). It also doesn't follow matching directories recursively.

/!(node_modules)/**

This one is closer, but it also excludes all of the files in the root directory. Even if it included files at the root level, I'm guessing it would exclude the node_modules.txt file.

P.S. This is for file matching using grunt-ssh and minimatch node modules.

Upvotes: 5

Views: 2508

Answers (1)

Chen Dachao
Chen Dachao

Reputation: 1836

This one can solve your problem: /!(node_modules){,/**}

Upvotes: 4

Related Questions