吞噬空白的目录

在我的build设中,我完成了一个任务, 所有的编译之后运行,发生了uglifying和minification。 这个任务简单地将src中的所有内容复制到尚未被早期任务触及/处理的dest目录中。 我遇到的小问题是这导致dest目录中的空目录。

有没有办法告诉gulp.src glob只包含模式匹配中的文件(如提供'is_file'标志)?

谢谢。

       

网上收集的解决方案 "吞噬空白的目录"

通过向pipe道添加一个filter来修复它:

 var es = require('event-stream'); var onlyDirs = function(es) { return es.map(function(file, cb) { if (file.stat.isFile()) { return cb(null, file); } else { return cb(); } }); }; // ... var s = gulp.src(globs) .pipe(onlyDirs(es)) .pipe(gulp.dest(folders.dest + '/' + module.folder)); // ... 

我知道我在这个派对上迟到了,但是对于这个问题的其他任何人来说,还有另外一种方法可以做到这一点,在我眼中看起来非常优雅。 我在这个问题中find了它

要排除空文件夹,我在glob模式之后添加了{ nodir: true }

你的一般模式可能是这样的(用Nick的答案中的variables):

 gulp.src(globs, { nodir: true }) .pipe(gulp.dest(folders.dest + '/' + module.folder)); 

矿井如下:

 gulp.src(['src/**/*', '!src/scss/**/*.scss', '!src/js/**/*.js'], { nodir: true }) .pipe(gulp.dest('dev/')); 

这将从src目录中select所有不是 scss或js文件的文件,也不会从这两个目录中复制任何空文件夹。