Node cli task that uses concurrently combined with a JSON configuration in package.json or separate file, to make concurrent tasks better readable and easier to configure. It for instance can be used to build a project in one command, when it consists of separate individual applications. Within our organisation we use it for starting and maintaining several development servers with one command.
npm install @freshheads/run-concurrently -D- Add your task configuration to your application's
package.jsonor separate json file. - Use the cli command to execute the tasks concurrently
- Setup shortcuts in the root of your application for easier execution (for instance
scriptsinpackage.jsonormake)
Can be placed in package.json, located in the location that this task is run from:
Format:
{
...,
"concurrentTasks": {
"<task_name>": {
"subTasks": [
{
"workingDirectory": "<directory_to_execute_code_in>",
"command": "<command_to_execute_in_working_directory>",
"name": "<prefix_that_is_used_to_distinguish_seperate_tasks_output>"
},
...
]
}
}
}Example, added to package.json:
{
...,
"concurrentTasks": {
"build": {
"subTasks": [
{
"workingDirectory": "./assets/a",
"command": "npm run build",
"name": "website"
},
{
"workingDirectory": "./assets/b",
"command": "npm run build",
"name": "admin"
},
{
"workingDirectory": "./assets/c",
"command": "npm run build",
"name": "frontend"
}
],
"options": {
"prefixLength": 20
}
},
"build:watch": {
"subTasks": [...]
}
}
}You can also place the configuration outside the package.json and into a separate JSON file. For this task to find it, you have to use the --config option to supply the server path to it. See below for more information.
| name | description | type | required | default value |
|---|---|---|---|---|
task |
The task to execute from the configuration | string |
false |
'build' |
| name | description | type | required | default value |
|---|---|---|---|---|
--config or -c |
Path to an alternate configuration file that you want to use | string |
false |
fallback on package.json in current working directory |
--help or -h |
Prints information about how to use this cli command | na. | false |
na. |
--verbose or -v |
If flagged with verbose, extra debug output is displayed | na. | false |
na. |
With configuration in package.json:
./node_modules/.bin/run-concurrently <command> --verboseWith separate configuration file:
./node_modules/.bin/run-concurrently <command> --config=/path/to/config.json --verboseOften it easier to alias it in a NPM script, like:
// package.json
{
"scripts": {
"<command>": "run-concurrently <command>"
}
}Install dependencies:
npm installRun tests by executing:
npm run testOr in watch mode:
npm run test:watch