从 Gulp-Zip 任务中排除文件夹 for each 循环



我正在使用gulp-zip和gulp for-each来压缩许多文件夹。它们包含名为 _js、_css 和 _raw 的其他文件夹。我希望从输出压缩文件中排除任何以下划线开头的文件夹。

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;
       }));
});

最后想通了,这是我的解决方案:

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;
    }));
});

最新更新