Package Exports
- @freshheads/run-concurrently
- @freshheads/run-concurrently/src/cli.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@freshheads/run-concurrently) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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.
;
Installation
npm install @freshheads/run-concurrently -DUsage
- 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)
Configuration
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.
CLI command usage
Arguments
| name | description | type | required | default value |
|---|---|---|---|---|
task |
The task to execute from the configuration | string |
false |
'build' |
Options
| 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. |
Running the command
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>"
}
}Development
Install dependencies:
npm installRunning tests
Run tests by executing:
npm run testOr in watch mode:
npm run test:watch