gpt4 book ai didi

javascript - gulp 任务完成后运行函数的任何方式

转载 作者:行者123 更新时间:2023-11-29 17:55:42 25 4
gpt4 key购买 nike

我的 gulpfile 中有很多 gulp 任务,我需要在每个任务完成后运行一个函数。

我是这样处理我的任务注册的:

var registerTask = function (taskName, dependencies, todo) {
if (isProduction) {
gulp.task(taskName, dependencies, todo);
} else {
var prefixedTaskName = '_' + taskName;

// the original task registers here with another name
gulp.task(prefixedTaskName, dependencies, todo);

// register my task to do after the original task is done
gulp.task(taskName, [prefixedTaskName], myRepeatedFunction);
}
}

然后我这样注册我的任务:

registerTask('foo', [], function () {
gulp
.src()
.pipe()
...
})

但这会使我的终端因日志(带下划线的任务名称)而变脏:

[15:54:17] Using gulpfile ~/Projects/xxx/gulpfile.js
[15:54:17] Starting '_default'...
[15:54:17] Starting '_remove-source-map'...
[15:54:17] Starting '_fontastic'...
[15:54:28] Finished '_fontastic' after 11 s
[15:54:28] Starting 'fontastic'...
[15:54:28] Finished 'fontastic' after 125 μs
[15:54:28] Starting '_js-hint'...
[15:54:28] Finished '_remove-source-map' after 11 s
[15:54:28] Starting 'remove-source-map'...
[15:54:28] Finished 'remove-source-map' after 59 μs
[15:54:28] Starting '_sass'...
[15:54:33] Finished '_sass' after 4.19 s
[15:54:33] Starting 'sass'...
[15:54:33] Finished 'sass' after 21 μs
[15:54:33] Finished '_js-hint' after 5.11 s
[15:54:33] Starting 'js-hint'...
[15:54:33] Finished 'js-hint' after 18 μs
[15:54:33] Starting '_js'...
[15:54:50] Finished '_js' after 17 s
[15:54:50] Starting 'js'...
[15:54:50] Finished 'js' after 17 μs
[15:54:50] Finished '_default' after 32 s
[15:54:50] Starting 'default'...
[15:54:50] Finished 'default' after 19 ms

我正在寻找一种没有脏日志的更好方法来做同样的事情(我不想使用 --silent)

如果在 gulp.task 中有一个回调,我可以用一种很好的方式做同样的事情。

最佳答案

Gulp 从orchestrator 继承了它的任务运行能力它提供了一个 .on()注册事件监听器的函数。

假设您有一个任务 foo 并且想要在任务 foo 完成后运行一个函数。你可以这样做:

var gulp = require('gulp');

gulp.task('foo', function() {
// do task stuff
});

gulp.on('task_stop', function(evt) {
if (evt.task == 'foo') {
// do stuff after task foo has finished
}
});

要实现此功能,您必须确保您的异步任务 are properly signalling completion .这意味着不要忘记返回流或在异步任务中调用回调函数!

关于javascript - gulp 任务完成后运行函数的任何方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205720/

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