javascript – 完成其他任务后运行gulp任务

我有两组文件,让我们称它们为base和mods. mods文件覆盖基本文件,所以当我运行与base相关的gulp任务时,我需要在之后直接运行mods任务.我的设置是这样的:

gulp.task('base',function(){
  return gulp.src('base-glob')
    .pipe(...)
    .pipe(gulp.dest('out-glob'))
});

gulp.task('mods',function(){
  return gulp.src('mods-glob')
    .pipe(...)
    .pipe(gulp.dest('out-glob'))
});

所以我想在完成基本任务时运行mods任务.请注意,这与将base定义为mods的依赖项不同,因为如果我只更改mods文件,我只需要运行mods任务.我不想使用插件.

我一直在阅读有关回调函数和同步任务的其他建议的文档,但似乎无法理解它.

解决方法:

我知道你不想使用插件,但gulp无法在没有插件的情况下按顺序运行一系列任务. Gulp 4 will,但与此同时,权宜之计解决方案是run-sequence插件.

gulp.task('all', function() {
  runSequence('base', 'mods');
});

这可确保任务按顺序运行,而不是无序依赖.

现在设置一个手表:

gulp.task('watch', function() {
    gulp.watch('base-glob', ['all']);
    gulp.watch('mods-glob', ['mods']);
});

每当base-glob改变时,gulp将运行所有任务,这将运行序列库然后mods.

每当mods-glob改变时,gulp将只运行mods任务.

听起来不对劲?

上一篇:npm 一些有用的提示和技巧


下一篇:gulp 构建 es6项目