I'm trying to write gulp-based application using main-bower-files. I want to copy all my and vendor assets files to %build_dir%/assets folder, but fonts files should be copied in %build_dir%/assets/fonts. Without vendor files it can be done easy via gulp.src.options.base option. But i can't understand how to do it with vendor files. Now i have
gulp.task('assets', ['less'], function() {
return gulp.src('src/less/fonts/*', {base: 'src/less'})
.pipe(addSrc('src/assets/**.*'))
.pipe(addSrc(mainBowerFiles(/.*woff|woff2|otf|ttf/, {includeDev: true})))
.pipe(gulp.dest(buildDir + '/assets'));
});
But it copies vendor fonts to %build_dir%/assets. So, ideal case is to write base as regexp that parses path to vendor fonts and take all path before /fonts. How to do it?
Vendor folder has next structure:
/bower_components
/lib1
/fonts
font1.woff
/lib2
/fonts
font2.otf
/lib3
/fonts
font3.ttf
Not possible. The
base
option doesn't support regexes. Only strings.You don't need the
base
option anyway. Just create two streams each with their owngulp.dest()
. Then merge those streams usingmerge-stream
:This also means you don't need
gulp-add-src
anymore.