在相同的源和串行上吞下4个多个任务

时间:2018-03-10 14:09:31

标签: javascript gulp gulp-watch gulp-4

我编辑我的gulpfile如下:

if (${ANDROID_ABI} STREQUAL "x86_64")
    include_directories(${ANDROID_SYSROOT}/usr/include/x86_64-linux-android)
elseif (${ANDROID_ABI} STREQUAL "x86")
    include_directories(${ANDROID_SYSROOT}/usr/include/i686-linux-android)
elseif (${ANDROID_ABI} STREQUAL "arm64-v8a")
    include_directories(${ANDROID_SYSROOT}/usr/include/aarch64-linux-android)
elseif (${ANDROID_ABI} STREQUAL "armeabi-v7a")
    include_directories(${ANDROID_SYSROOT}/usr/include/arm-linux-androideabi)
endif()

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

我可以将htmlcomb,jsmin和(cssbomb + cssmin)作为异步运行。但我需要在csscomb之后运行cssmin。

1 个答案:

答案 0 :(得分:0)

如果你想在cssmin之前运行csscomb,只需使用:

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));
});