节点/吞吐同步删除任务内的目录
我有这样一个任务:
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”包的文档