javascript - How to parse path dynamically in gulp.src.options.base -


i'm trying write gulp-based application using main-bower-files. want copy , vendor assets files %build_dir%/assets folder, fonts files should copied in %build_dir%/assets/fonts. without vendor files can done easy via gulp.src.options.base option. can't understand how vendor files. 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 copies vendor fonts %build_dir%/assets. so, ideal case write base regexp parses path vendor fonts , take path before /fonts. how it?

vendor folder has next structure:

/bower_components    /lib1       /fonts          font1.woff    /lib2       /fonts          font2.otf    /lib3       /fonts          font3.ttf 

so, ideal case write base regexp parses path vendor fonts , take path before /fonts. how it?

not possible. base option doesn't support regexes. strings.

you don't need base option anyway. create 2 streams each own gulp.dest(). merge streams using merge-stream:

var merge = require('merge-stream');  gulp.task('assets', ['less'], function() {   return merge(     gulp.src(['src/less/fonts/*'].concat(mainbowerfiles(/.*woff|woff2|otf|ttf/, {includedev: true})))         .pipe(gulp.dest(builddir + '/assets/fonts')),     gulp.src('src/assets/**.*')         .pipe(gulp.dest(builddir + '/assets'))); }); 

this means don't need gulp-add-src anymore.


Comments