Run multiple commands concurrently with the option to supply a condition to pass before running the next command.
Table of contents
npm i -D concurrently-await
or
yarn -D concurrently-await
Remember to surround separate commands with quotes:
concurrently-await "command1 arg await --<condition> value" "command2 arg await --<condition> value"
In package.json, escape quotes:
"start" : "concurrently-await \"command1 arg await --<condition> value\" \"command2 arg await --<condition> value\""
Conditions are optional, but must be seperated from the command and its arguments by the wait seperator
Type | Description | Value type | Example |
---|---|---|---|
delay | Wait for a given number number of milliseconds before executing the next command | number | --delay 500 |
quiet | Wait until the command provided stops logging for a given number of milliseconds before executing the next command | number | --quiet 3000 |
includes | Wait until the command logs a message that includes the provided value (case insensitive) | string | --includes done |
matches | Wait until the command logs a message that exactly matches the provided value | string | --matches Finished Compiling |
- -n, --names
- -ns, --name-seperator
- -ws, --wait-seperator
- -v, --version - Show version
- -h, --help - Show help
You can provide a list of custom names to be used in prefix template for logging, otherwise the prefix will just be the index of the command.
concurrently-await --names ui,server "command1 arg await --<condition> value" "command2 arg await --<condition> value"
The character to split names on, the default is ,
. Example usage:
concurrently-await --names ui|server --name-seperator | "command1 arg await --<condition> value" "command2 arg await --<condition> value"
The default wait seperator is await
but this may conflict with your command. You can set your own wait seperator by setting the wait seperator option:
concurrently-await --wait-seperator ~> "command1 arg ~> --<condition> value" "command2 arg ~> --<condition> value"