2014-09-03 17 views
7

Próbuję do zadania haustem który kopiuje wszystkie pliki wewnątrz folderu do innego folderukopiować tylko pliki w folderze w Gulp

gulp.task('copy-fonts', ['unzip'], function() { 
    return gulp.src('./gulp-tmp/**/fonts/*') 
     .pipe(gulp.dest('fonts')); 
}); 

Problemem jest nazwa katalogu po gulp-tmp różna, więc musiałem tam użyć **.

więc wynik kończy się jak /fonts/[randomFolderName]/fonts/[the files]

Gdzie czego chcę to /fonts/[the files]

Odpowiedz

18

Zastosowanie gulp-flatten.

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

gulp.src('./gulp-tmp/**/fonts/*') 
    .pipe(flatten()) 
    .pipe(gulp.dest('fonts')); 
+1

przystępne rozwiązanie, dzięki –

5

Używam prostego kodu bez bibliotekami zewnętrznymi, na przykład:

gulp.src('./src/fonts/*.{ttf,woff,eof,svg}') 
    .pipe(gulp.dest('/build/fonts')); 

lub tylko pliki HTML:

gulp.src('./src/templates/*.html') 
    .pipe(gulp.dest('/build/templates')); 
+1

dobrze ... dzięki! szukałem wokół, aby dowiedzieć się, dlaczego tylko o gwiazdka niósł w katalogach TOO: '' 'javascript gulp.src ('app/*') .pipe (gulp.dest (config. dist.root)); '' ' ja błędnie myśli, że muszę podwójne asterices w celu recurse, ale widząc swoje rozwiązanie uświadomił mi, że mogę to zrobić: ' '' javascript gulp.src ('aplikację /*.* ') .pipe (gulp.dest (config.dist.root)); '' ' Chyba nadal będzie zawierał katalogi z kropką w nazwie ... ale tak, dziękuję. –

Powiązane problemy