2014-09-03 80 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