Run grunt tasks concurrently
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
tasks 2.3.0 Aug 5, 2016
test meta tweaks Apr 8, 2016
.editorconfig minor tweaks Feb 19, 2016
.gitattributes init Apr 7, 2013
.gitignore added logConcurrentOutput option Apr 18, 2013
.travis.yml minor tweaks Feb 19, 2016
gruntfile.js meta tweaks Apr 8, 2016
license tweaks Sep 1, 2014
package.json 2.3.1 Aug 13, 2016 trying out something new Aug 13, 2016
screenshot.png tweaks Sep 1, 2014

grunt-concurrent Build Status

Run grunt tasks concurrently

🔥 Want to strengthen your core JavaScript skills and master ES6?
I would personally recommend this awesome ES6 course by Wes Bos.

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 nodemon and watch at once.


$ npm install --save-dev grunt-concurrent


require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks

	concurrent: {
		target1: ['coffee', 'sass'],
		target2: ['jshint', 'mocha']

// tasks of target1 run concurrently, after they all finished, tasks of target2 run concurrently,
// instead of target1 and target2 run concurrently.
grunt.registerTask('default', ['concurrent:target1', 'concurrent:target2']);

Sequential tasks in concurrent target

	concurrent: {
		target: [['jshint', 'coffee'], 'sass']

Now jshint will always be done before coffee and sass runs independent of both of them.



Type: number
Default: Twice the number of CPU cores with a minimum of 2

Limit how many tasks that are run concurrently.


Type: boolean
Default: false

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:

	concurrent: {
		target: {
			tasks: ['nodemon', 'watch'],
			options: {
				logConcurrentOutput: true

grunt.registerTask('default', ['concurrent:target']);

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