javascript - Any way to run a function when a gulp task is finished -


i have many gulp tasks in gulpfile, , need run function after each task done.

i handled task registration this:

var registertask = function (taskname, dependencies, todo) {   if (isproduction) {     gulp.task(taskname, dependencies, todo);   } else {     var prefixedtaskname = '_' + taskname;      // original task registers here name     gulp.task(prefixedtaskname, dependencies, todo);      // register task after original task done     gulp.task(taskname, [prefixedtaskname], myrepeatedfunction);   } } 

and register tasks this:

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

but makes terminal dirty logs (underscored task names):

[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 

i'm looking better way same thing without dirty logs (i don't want use --silent)

if there callback in gulp.task same thing in nice way.

gulp inherits task running capabilities orchestrator provides .on() function register event listeners.

say have task foo , want run function after task foo has finished. can this:

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

for work have make sure async tasks are signalling completion. means don't forget return streams or call callback function in async tasks!


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -