gulp-ll

1.0.4 • Public • Published

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 🎉

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 (ifaaan@gmail.com)

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.4
    229
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.4
    229
  • 1.0.3
    1
  • 1.0.2
    1
  • 1.0.1
    0

Package Sidebar

Install

npm i gulp-ll

Weekly Downloads

163

Version

1.0.4

License

MIT

Last publish

Collaborators

  • inikulin