1. gulp-ll-next
Run CPU-consuming Gulp tasks in the separate processes to achieve faster builds.
gulp-ll-next
Package: gulp-ll-next
Created by: inikulin
Last modified: Mon, 04 Sep 2023 07:01:07 GMT
Version: 2.1.0
License: MIT
Downloads: 428
Repository: https://github.com/inikulin/gulp-ll

Install

npm install gulp-ll-next
yarn add gulp-ll-next

gulp-ll

Ugly workaround for this imperfect world where we don't have threads in Node.

Run CPU-consuming Gulp tasks in the separate processes to achieve faster builds.

Build Status NPM Version

Install

npm install --save-dev gulp-ll

Usage

Declare which tasks should be run in parallel before any task declaration:

 var gulp = require('gulp');
var ll   = require('gulp-ll');

ll.tasks(['lint', 'compile-scripts']);

gulp.task('lint', ['dep'], () => {
// Task code...
});

gulp.task('compile-scripts', ['dep'], () => {
// Task code...
});

gulp.task('dep', () => {
// This task will run in the master process ONCE before 'lint' and 'compile-scripts' begin.
});

And we're set :tada:

So, now my builds will run faster, right?

It depends. Node processes are quite slow to spawn. So, running tasks in the separate processes could be
slower than executing them sequentially in the single process. You need to play a little bit with the
configuration (using time gulp your-task) to figure out the optimal one. E.g. I was able to reach maximum
performance (~30% faster) by using gulp-ll only for the the heaviest CPU-consuming task out of 3 in my project.
Performance gain also depends on the codebase size: obviously, it will give better results in the big projects.

Faster debugging sessions

Node process may become painfully slow in the debugging mode. Sometimes, when you trying to debug your tests by
running test task that depends on scripts compilation, linting, etc. it may take ages to reach the desired breakpoint.
This is there gulp-ll come in handy - it will run heavy gulp tasks in the separate processes with the regular speed.
Taking in consideration what was told in the previous paragraph, more likely you will not want to run all your heavy
tasks in the separate processes. But, you can force them to to do so only in the debug:

 ll
    // Always run in separate process
    .tasks('lint')
    // Run in separate process only in debug
    .onlyInDebug('compile-scripts', 'build-templates');

How I can debug task if it's in separate process?

You can just disable gulp-ll by running Gulp with --no-ll parameter:

gulp my-task --no-ll

Caveats

More likely gulp-ll will not work for you if you have global variables set by one task and used by another.
Apart from the topic, I suggest you to never do so.

Author

Ivan Nikulin ([email protected])

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code