gpt4 book ai didi

gulp - 完成所有任务后,如何在gulp中处理通知?

转载 作者:行者123 更新时间:2023-12-04 10:00:04 25 4
gpt4 key购买 nike

我进入了Gulp的许多流派,并且遇到了一个令人困惑的话题。我想在所有任务实际完成时发布通知。我看到任务已执行但默认情况下异步运行。

如果我想在每个步骤完成后显示通知,然后在所有步骤完成后显示通知,该怎么办?

更好地控制任务的时间安排的最佳方法是什么?

目前,我正在使用gulp-notify来显示通知。

更新X 2

我并没有真正的错误,但想更好地了解此处的操作顺序,以及如何在所有任务完成时触发自己的通知。这是例子。

var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_notify = require('gulp-notify');

gulp.task('task1', function() {
return gulp.src(['file1.js','file2.js'])
.pipe(gp_concat('file1_2.js')
.pipe(gp_notify({ message: "file1_2 created." }
})

gulp.task('task2', function() {
return gulp.src(['file3.js','file4.js'])
.pipe(gp_concat('file3_4.js')
.pipe(gp_notify({ message: "file3_4 created." }
})

gulp.task('mainTask', ['task1','task2'], function() {
gulp.src('file*_*.js')
.pipe(gp_notify({ message: "All tasks complete." }))
});

现在,在控制台中,通知已正确计时,但是在执行结束时,恰好在xx ms之后的“mainTask”完成之前,最后的“所有任务已完成”消息触发[n-1]次,其中n是计数子任务。

是什么原因导致最终通知被触发了那么多次,又该如何抑制呢?

最佳答案

我猜您尝试在每个任务的末尾添加一个对gulp-notify的调用,并在依赖于先前任务的常规任务的末尾附加一个对gulp-notify的调用。

因此,问题可能与任务没有正确地将其“完成状态”传达给主要任务有关。对于此主题,您可以检查Running tasks in series, i.e. Task Dependency食谱或始终方便的run-sequence软件包。

更新

为了让任务知道其子任务已完成,是使它们返回流,因此在示例代码中,子任务可以简单地返回gulp.src管道。

gulp-notify当使用字符串消息调用时,将为传递的流中存在的每个文件输出该消息,因此,在示例的最后任务中,它将被调用两次。对gp_notify的调用应更改为:gp_notify({消息:“所有任务已完成。” ,onLast:true })。这样,将仅针对最后一个文件通知该消息。

关于gulp - 完成所有任务后,如何在gulp中处理通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26612856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com