2014-09-03 191 views
7
一個文件夾內

我試圖以一飲而盡任務,副本的文件夾內的所有文件到另一個文件夾僅複製文件咕嘟咕嘟

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

問題是,目錄的gulp-tmp後的名稱會有所不同,所以我不得不在那裏使用**

那麼,我要的是/fonts/[the files]

回答

18

使用gulp-flatten的結果結束了像/fonts/[randomFolderName]/fonts/[the files]

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

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

很好的解決方案,謝謝 – 2015-11-15 17:15:52

5

我用簡單的代碼,而無需外部庫,例如:

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

或HTML檔案:

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

優秀...謝謝! 我環顧四周,看看爲什麼僅僅有一個星號被引進目錄太: '''的JavaScript gulp.src( '應用/ *') .pipe(gulp.dest(配置。 dist.root)); ''' 我會誤以爲我需要的雙重asterices以遞歸,但看到你的解決方案使我意識到,我可以這樣做: '''的JavaScript gulp.src(「應用程序/*.*') .pipe(gulp.dest(config.dist.root)); ''' 我想它仍然會在名稱中帶點的目錄......但無論如何,謝謝。 – 2015-08-13 19:01:22