我认为您可以相对轻松地使用node-glob 来查找gulp 之外的匹配文件,如下所示:
var glob = require('node-glob'),
fs = require('fs);
gulp.task('delete-empty-files', function(cb) {
glob('/path/to/generated/**/*.js', function(err, files) {
files.forEach(function(file) {
if(fs.statSync(file).size === 0) {
fs.unlinkSync(file);
}
});
// make sure the task runs asynchronously!
cb();
});
});
或者,您可以使用gulp-tap 来实现类似的结果,如下所示:
var tap = require('gulp-tap'),
fs = require('fs);
gulp.task('delete-empty-files', function() {
return gulp.src('/path/to/generated/**/*.js')
.pipe(tap(function(file) {
if(file.stat.size === 0) {
fs.unlinkSync(file);
}
});
});
});
他们是相当平等的,真的。我认为第一个会更快,因为它不会有来自gulp 和vinyl-fs 的额外内容。
您可能可以将{read: false} 选项添加到gulp.src() 以加快速度,但这也可能会禁用.stat 被读取。如果你想试试,你可以这样添加:
return gulp.src('/path/to/files/**/*.js', {read: false}).pipe(...)