2014-12-29 11 views
14

Sto usando questo file corrispondente nel sorso:Come posso utilizzare un glob per ignorare i file che iniziano con un trattino basso?

'content/css/*.css' 

Ma vorrei includere solo i file che Non inizio con un carattere di sottolineatura. Qualcuno può dirmi come posso farlo?

Ecco il codice:

gulp.task('less', function() { 
    gulp.src('content/less/*.less') 
     .pipe(less()) 
     .pipe(gulp.dest('content/css')); 
}); 
+1

Non sembra un'espressione regolare, sembra un carattere jolly con nome file. – Barmar

+0

Penso che sia indicato come un glob in sorso ma sono un po 'confuso da tutto questo. – Alan2

+0

Questo è anche ciò che viene chiamato nella shell. – Barmar

risposta

25

Se i caratteri jolly Gulp sono come i caratteri jolly della shell:

content/css/[^_]*.css 

Il ^ all'inizio di un set di caratteri mezzi per realizzare le eventuali caratteri non nel set .

1

È possibile utilizzare questo regex.

content/css/[^_].*\.css 

Aggiungere $ all'ultimo se necessario.

+0

Puoi dirmi cosa fa qui ". * \" Nel mezzo? Inoltre sto cercando i file che non iniziano con un trattino basso. – Alan2

+0

'[^ _]' corrisponde alla prima lettera del nome file, solo se non è un trattino basso. Quindi il seguente '. *' Corrisponde a qualsiasi carattere in modo non avido, e anche i caratteri di sottolineatura. E il finale '.css' afferma che i nomi dei file devono terminare con .css' –

2

usare questo plugin https://github.com/robrich/gulp-ignore

var gulpIgnore = require('gulp-ignore'); 
var condition = '_*.css'; //exclude condition 

gulp.task('less', function() { 
    gulp.src('content/less/*.less') 
    .pipe(gulpIgnore.exclude(condition)) 
    .pipe(less()) 
    .pipe(gulp.dest('/dist/')); 
}); 

credo sorso supporta file di glob non full-regex, ma si può dare una prova di content/css/[^_]*.less

+0

Sono molto aperto al tuo nuovo suggerimento ma puoi controllare la mia domanda aggiornata dove mostro il codice che viene usato. Penso che la mia versione potrebbe essere un po 'più semplice in quanto non ha bisogno di ignorare Gulp. Apprezzo i tuoi commenti su questo. Grazie – Alan2

+0

Controlla il post aggiornato, Ma il tuo codice include tutti i file che terminano con .less Non sono sicuro che gulp supporti per default la regex completa nei nomi dei file !! –

4

È possibile aggiungere un secondo glob tuute filtrerà i file o cartelle con un trattino basso.

Per ignorare le cartelle che uso:

gulp.src(['./src/**/*.html', '!**/_*/**']) 

'!**/_*/**' filtrerà le cartelle che iniziano con un carattere di sottolineatura.