【问题标题】:How to start gulp task from other gulp task after gulp.start is deprecated in gulp V4?在 gulp V4 中不推荐使用 gulp.start 后,如何从其他 gulp 任务启动 gulp 任务?
【发布时间】:2019-06-22 11:54:54
【问题描述】:

我需要创建名为“watch”的 gulp 任务来观察 index.html 文件中的更改,并在 index.html 中进行更改时启动其他名为“html”的 gulp 任务。根据我正在遵循的教程,应该这样做:

gulp.task('watch', function(){
    watch('app/index.html', function() {
        gulp.start('html');
    });
});

但它会返回错误消息,因为 gulp.start 在 gulp v4 中已被弃用。我使用串行和并行方法尝试了几种解决方案,但老实说,我根本不理解这些解决方案,并且使用它没有得到任何结果。有人可以在我的简单示例中告诉我如何做到这一点吗?

【问题讨论】:

    标签: javascript gulp gulp-watch


    【解决方案1】:

    Gulp 任务现在是简单的函数。无需通过gulp.task()定义任务,只需定义函数即可:

    function html(cb) {
        // Do something
        cb()
    }
    

    现在对函数html的引用可以用作任务:

    function watch() {
        return gulp.watch('app/index.html', html)
    }
    

    请注意,定义为简单函数的任务被视为私有任务,它们不能通过gulp <task> 调用。为此,您需要通过导出它们使它们公开

    exports.html = html
    exports.watch = watch
    

    因此,对于您的特定用例,您不需要seriesparallel。但是,您可以以相同的方式将任务(函数引用)传递给它们以创建其他任务:

    exports.rebuild = gulp.series(clean, build)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2017-09-02
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多