1

I'm using gulp-zip and gulp for-each to zip a number of folders. These contain other folders named _js, _css and _raw. I wish to exclude any folder beginning with an underscore from the output zipped files.

gulp.task("zipAll", function(){
   return gulp.src('src/*')
       .pipe(foreach(function(stream, file){
          var fileName = file.path.substr(file.path.lastIndexOf("/")+1);
          gulp.src("src/" + fileName + "/**/*")
              .pipe(zip(fileName + ".zip"))
              .pipe(gulp.dest("dist"));
          return stream;
       }));
});
jimbouton
  • 249
  • 1
  • 2
  • 8
  • 2
    Possible duplicate of [Excluding files/directories from Gulp task](https://stackoverflow.com/questions/23384239/excluding-files-directories-from-gulp-task) – dloeda Jan 24 '18 at 09:25

1 Answers1

0

Figured it out in the end, here is my solution:

gulp.task('zipAll', function(){
    return gulp.src('src/*')
    .pipe(foreach(function(stream, file){
        var fileName = file.path.substr(file.path.lastIndexOf('/')+1);
        gulp.src(['src/' + fileName + '/**/*', '!src/' + fileName + '/_sass{,/**}', '!src/' + fileName + '/_js{,/**}', '!src/' + fileName + '/_raw{,/**}'])
        .pipe(zip(fileName + '.zip'))
        .pipe(gulp.dest('dist'));
        return stream;
    }));
});
jimbouton
  • 249
  • 1
  • 2
  • 8