节点/吞吐同步删除任务内的目录

我有这样一个任务:

gulp.task('test', function(){ del('./build'); gulp.src('./test/**/*') .pipe(gulp.dest('./build')); }); 

实质上,这应该是首先删除生成目录,然后它应该复制一堆文件到一个新的生成目录。

我的问题:这两个命令是asynchronous还是同步? 在将文件复制到相同目录的新版本之前, del运行并完成显然是非常重要的。

如果他们是asynchronous的,那么我如何让他们同步运行? 我唯一的select是将它们分解为单独的任务,并让del任务依赖于“复制任务”? 在单个任务中没有办法使stream同步?

如果你真的想同步删除目录,你可以直接使用fs

 var fs = require('fs'); gulp.task('test', function(){ fs.rmdirSync('./build'); return gulp.src('./test/**/*') .pipe(gulp.dest('./build')); }); 

如果你asynchronous使用del() ,你可以这样做:

 del('./build', function(err) { gulp.src('./test/**/*') .pipe(gulp.dest('./build')); }); 

似乎函数del.sync作品:

 del.sync('./build'); 

“del”包的文档