2

我编辑我的 gulpfile 如下:

gulp.task('watch', function() {
    gulp.watch('**/*.html', gulp.series('htmlcomb'));
    gulp.watch('css/**/*.scss', gulp.series('csscomb'));
    gulp.watch('css/**/*.scss', gulp.series('cssmin'));        
    gulp.watch('js/**/*.js', gulp.series('jsmin'));
});

但是当我运行 gulp watch 它在 csscomb 之后停止。当我编辑一个 scss 文件时。它只会梳理它。

我可以异步运行 htmlcomb、jsmin 和 (cssbomb + cssmin)。但是我需要在 csscomb 之后运行 cssmin。

4

1 回答 1

0

如果您希望 csscomb 在 cssmin 之前运行,只需使用:

gulp.task('watch', function() {
    gulp.watch('**/*.html', gulp.series('htmlcomb'));

    gulp.watch('css/**/*.scss', gulp.series('csscomb', 'cssmin'));

    gulp.watch('js/**/*.js', gulp.series('jsmin'));
});

实际上,如果您使用 gulp4.0,您的函数可能是以下形式:

function csscomb() {
  return gulp.src(…...)
    .pipe.....)
    .pipe(gulp.dest(…...));
}

所以你的监视任务正在调用函数 - 而不是任务 - 看起来像这样:

gulp.task('watch', function() {
    gulp.watch('**/*.html', gulp.series(htmlcomb));

    gulp.watch('css/**/*.scss', gulp.series(csscomb, cssmin));

    gulp.watch('js/**/*.js', gulp.series(jsmin));
});
于 2018-03-10T15:09:53.130 回答