除了单个文件之外,您能否清除目录中的所有文件?

Rol*_*ndo 20 node.js gulp

有没有办法使用gulp-clean,而不是传入我想要删除的文件或目录,删除与目录中的特定文件名不匹配的所有内容?

例如,如果目录"dir"中有3个文件:

dir/a.js
dir/b.js
dir/c.js
Run Code Online (Sandbox Code Playgroud)

示例Pseudocode我想做什么,(删除/ dir/thats中的所有内容不是a.js:

gulp.src('!./dir/a.js').pipe(clean());
Run Code Online (Sandbox Code Playgroud)

Hei*_*kki 35

这应该工作:

var gulp = require('gulp');
var del = require('del');

gulp.task('clean', function(cb) {
    del(['dir/**/*', '!dir/a.js'], cb);
});
Run Code Online (Sandbox Code Playgroud)

如果排除的文件位于子目录中,则需要从删除中排除该目录.例如:

del(['dir/**/*', '!dir/subdir', '!dir/subdir/a.js'], cb);

要么:

del(['dir/**/*', '!dir/subdir{,/a.js}'], cb);