Run grunt tasks concurrently
Running slow tasks like Coffee and Sass concurrently can potentially improve your build time significantly. This task is also useful if you need to run multiple blocking tasks like
watch at once, as seen in the example config.
This task is similar to grunt-parallel, but more focused by leaving out support for shell scripts which results in a leaner config. It also has a smaller dependency size and pads the output of concurrent tasks, as seen above.
If you haven't used grunt before, be sure to check out the Getting Started guide, as it explains how to create a gruntfile as well as install and use grunt plugins. Once you're familiar with that process, install this plugin with this command:
npm install grunt-concurrent --save-dev
Tip: the load-grunt-tasks module makes it easier to load multiple grunt tasks.
See the Gruntfile in this repo for a full example.
Just specify the tasks you want to run concurrently as an array in a target of this task as shown below.
This will first run the Coffee and Sass tasks at the same time, then the JSHint and Mocha tasks at the same time.
Default: Number of CPU cores (
require('os').cpus().length) with a minimum of 2
Limit of how many tasks that are run concurrently.
You can optionally log the output of your concurrent tasks by specifying the
logConcurrentOutput option. Here is an example config which runs grunt-nodemon to launch and monitor a node server and grunt-contrib-watch to watch for asset changes all in one terminal tab:
Note the output will be messy when combining certain tasks. This option is best used with tasks that don't exit like watch and nodemon to monitor the output of long-running concurrent tasks.
MIT © Sindre Sorhus