Run gulp tasks in separate CPU processes
npm install gulp-multi-process --save-dev
gulpfile.js
var gulp = require('gulp');
var gulpMultiProcess = require('gulp-multi-process');
gulp.task('task1', function(cb) {
// example
});
gulp.task('task2', function(cb) {
// example
});
gulp.task('multi', function(cb) {
// task1 and task2 will run in different processes
return gulpMultiProcess(['task1', 'task2'], cb);
});
gulpfile.js
const gulp = require('gulp');
const gulpMultiProcess = require('gulp-multi-process');
function task1() {
// example
});
exports.task1 = task1;
function task2() {
// example
});
exports.task2 = task2;
// gulp single will run task1 and task2 on a serial way
exports.single = gulp.series(task1, task2)
function multi(done) {
// task1 and task2 will run in different processes
return gulpMultiProcess(['task1', 'task2'], done);
}
exports.multi = multi;
Run task in multiple processes is not always good for performance because spawn a different node processes is slow. It also depends on how long time it takes to require your gulpfile
.
Keep in mind that you can pass true
as a third parameter to gulpMultiProcess
fn in order to get optimal performance. This will launch one process per core, and if there will be more of them than the number of cores on your machine it will put others into queue. When one process will finish its operation, the next one will be on launched.