2015-02-16 17 views
16

Czy istnieje sposób używania gulp-clean w taki sposób, że zamiast przekazywać pliki lub katalogi, które chcę usunąć, usunąć wszystko, co nie pasuje do określonej nazwy pliku w katalogu?Czy możesz przełknąć wszystkie pliki w katalogu, z wyjątkiem pojedynczego pliku?

Na przykład, jeśli mam 3 pliki w katalogu "dir": pseudokod

dir/a.js 
dir/b.js 
dir/c.js 

próbka tego, co chcę zrobić, (usuń wszystko w/dir/ów nie a.js:

gulp.src('!./dir/a.js').pipe(clean()); 

Odpowiedz

26

to powinno działać:

var gulp = require('gulp'); 
var del = require('del'); 

gulp.task('clean', function(cb) { 
    del(['dir/**/*', '!dir/a.js'], cb); 
}); 

Jeśli wykluczyć plik znajduje się w podkatalogu trzeba wykluczyć, że dir z delet jon. Na przykład:

del(['dir/**/*', '!dir/subdir', '!dir/subdir/a.js'], cb);

czyli

del(['dir/**/*', '!dir/subdir{,/a.js}'], cb);

2

gulp-filter mogą być używane do filtrowania plików ze strumienia haustem:

var gulp = require('gulp'); 
var filter = require('gulp-filter'); 

gulp.src('**/*.js') 
    .pipe(filter(['*', '!dir/a.js'])) 
    .pipe(clean()); 
Powiązane problemy