Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 除了一个文件外,你能一口气清理目录中的所有文件吗?_Node.js_Gulp - Fatal编程技术网

Node.js 除了一个文件外,你能一口气清理目录中的所有文件吗?

Node.js 除了一个文件外,你能一口气清理目录中的所有文件吗?,node.js,gulp,Node.js,Gulp,有没有一种方法可以使用gulp clean来删除目录中与特定文件名不匹配的所有内容,而不是传递我要删除的文件或目录 例如,如果目录“dir”中有3个文件: 我想做的伪代码示例(删除/dir/that not a.js中的所有内容: gulp.src('!./dir/a.js').pipe(clean()); 这应该起作用: var gulp = require('gulp'); var del = require('del'); gulp.task('clean', function(cb)

有没有一种方法可以使用gulp clean来删除目录中与特定文件名不匹配的所有内容,而不是传递我要删除的文件或目录

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

我想做的伪代码示例(删除/dir/that not a.js中的所有内容:

gulp.src('!./dir/a.js').pipe(clean());
这应该起作用:

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

gulp.task('clean', function(cb) {
    del(['dir/**/*', '!dir/a.js'], cb);
});
如果排除的文件位于子目录中,则需要从删除中排除该目录。例如:

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

或:

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

可用于过滤大量流中的文件:

var gulp = require('gulp');
var filter = require('gulp-filter');

gulp.src('**/*.js')
    .pipe(filter(['*', '!dir/a.js']))
    .pipe(clean());

如果文件位于嵌套文件夹下,我们必须明确排除每个文件夹;
var gulp = require('gulp');
var filter = require('gulp-filter');

gulp.src('**/*.js')
    .pipe(filter(['*', '!dir/a.js']))
    .pipe(clean());