Gulp Clean
Here’s a useful (semi-useless) discovery. To get gulp tasks to execute synchronously, we need to return the gulp stream at the end of each task so they can pass onto an implicit promise. Dave Lenny has a nice example of this.
gulp.task('default', ['one', 'two', 'three']);
Tasks one
, two
, and three
should all return gulp streams. Eg:
gulp.task('one', () => {
// fuim
return gulp.src('file')
.pipe($.itReallyIsMagic());
});
gulp.task('two', () => {
// fuim
return gulp.src('file')
.pipe($.iSwearItsMagic());
});
gulp.task('three', () => {
// fuim
return gulp.src('file')
.pipe($.actualWizardsMadeThis());
});
I realized my gulp clean task was simply:
gulp.task('clean' () => {
return del(['dir1', 'dir2']);
});
which is basically the end of the world since del
is not a gulp stream. So I started using gulp-clean
(npm install --save-dev gulp-clean
) and my gulp task has re-gifted me a pipe so that Mario, Luigi, plumbing metaphor….
gulp.task('clean' () => {
return gulp.src(['.tmp', 'dist'], {read: false})
.pipe($.clean());
});