繁体   English   中英

如果在gulp V4中弃用gulp.start后如何从其他gulp任务启动gulp任务?

[英]How to start gulp task from other gulp task after gulp.start is deprecated in gulp V4?

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

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

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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM