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

loops - Spock: How to use test data with @Stepwise -

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