Ho una situazione in cui sto cercando di usare grunt per filtrare un codebase, escludendo cartelle specifiche.esclusione cartella grunt (minimatch/glob)
grunt utilizza minimatch (simile a bsdglob) sotto il cofano per abbinare i file, ma non riesco a capire come fare a escludere uno stile .gitignore di una cartella.
mi piacerebbe ingerire questo:
ignoreme
e abbinare questi:
/folder/path/here/to/something/ok.js
/another/folder/path.js
/test.js
ma non corrispondono questi:
/folder/ignoreme/something.js
/folder/path/here/to/ignoreme/metoo/file.js
Questo corrisponderanno tutto, compreso il ignoreme:
/**/*.js
Così ho pensato che avrei potuto fare qualcosa di simile:
/**/!(ignoreme)/**/*.js
ma che corrisponde file nella cartella ignoreme.
Sono abituato a espressioni regolari, ma non riesco a capire come ripetere un modello o qualcosa qui - Ho anche provato cose come:
/(!(ignoreme)|*)*/*.js
sperando contenitore ripeteva, ma che doesn Funziona, non riesce a eguagliare tutto.
Un modo per passare una regex a percorsi di file grunt o renderlo funzionante per me?
Aggiornamento:
Ecco come sto attualmente si occupano di questo problema:
var pattern = /\/ignoreme\//
var files = grunt.file.expandFiles(arrayOfFilesPassedToMinimatch).filter(function(f){
return !pattern.test(f)
})
Sarei ancora interessato se esclude cartelle sono possibili in minimatch.
L'uso di 'map' è un risultato in' file' contenente una matrice di valori 'TRUE' e 'FALSE'. 'filter' imposterà correttamente' files' per essere una lista di percorsi filtrati. – deefour
Proprio così, devi aver digitato durante la notte. Aggiornato il codice di esempio per funzionare. – Jesse