Mark Mark - 5 months ago 21
Node.js Question

Flatten glob down to one directory

Within Gulp, I am using

gulp.src
to select every font file from a directory:

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


However, I would like to have all of these font files wind up in one directory side-by-side rather than have the entire tree re-created from the
components
directory.

Looking in the Gulp, Gulp Utils, and npm-glob APIs didn't really help me, though I could've easily skipped by it.

What would the best way to go about this?

Answer

I would use gulp-flatten:

var flatten = require('gulp-flatten');
gulp.task('copy-fonts', function() {
  gulp.src('dependencies/**/*.{ttf,woff,eof,svg}')
  .pipe(flatten())
 .pipe(gulp.dest('build/fonts'));
});

As to how this is done internally, check: https://github.com/armed/gulp-flatten/blob/master/index.js

Comments