CLI tool to run multiple npm-scripts fast. Supports madly comfortable π Madrun.

npm i redrun -g
Usage: redrun [...tasks] [options] [-- ...args]
Options:
-p, --parallel run scripts in parallel
-s, --series run scripts in series
-q, --quiet do not output result command before execution
-c, --calm return zero exit code when command completed with error
-P, --parallel-calm run scripts in parallel and return zero exit code
-S, --series-calm run scripts in series and return zero exit code
-h, --help display this help and exit
-v, --version output version information and exit
You can enable tab-completion of npm scripts similar to npm's completion using:
redrun-completion >> ~/.bashrc
redrun-completion >> ~/.zshrc
You may also pipe the output of redrun-completion to a file such as /usr/local/etc/bash_completion.d/redrun if you have a system that will read that file for you.
package.json:
{
"scripts": {
"one": "npm run two",
"two": "npm run three",
"three": "echo 'hello'"
}
}
Usually these expressions would be executed one after another:
coderaiser@cloudcmd:~/redrun$ npm run one
> redrun@1.0.0 one /home/coderaiser/redrun
> npm run two
> redrun@1.0.0 two /home/coderaiser/redrun
> npm run three
> redrun@1.0.0 three /home/coderaiser/redrun
> echo 'hello'
hello
All these npm run commands that are created are slow, because each time it creates a new process.
redrun makes it faster:
coderaiser@cloudcmd:~/redrun$ redrun one
> echo 'hello'
hello
Redrun could be used via the command line, the scripts section of package.json or in a script:
import redrun from 'redrun';
await redrun('one', {
one: 'npm run two',
two: 'npm run three',
three: `echo 'hello'`,
});
// returns
`echo 'hello'`;
await redrun('one', {
one: 'redrun -p two three',
two: 'redrun four five',
three: `echo 'hello'`,
four: 'jshint lib',
five: 'jscs test',
});
// returns
`jshint lib && jscs test & echo 'hello'`;
The less spend time is better:
npm-run-all: 1m12.570snpm run && npm run: 1m10.727sredrun: 0m38.312sHere are logs:
coderaiser@cloudcmd:~/redrun$ time npm run speed:npm-run-all
> speed:npm-run-all /home/coderaiser/redrun
> npm-run-all lint:*
> redrun@5.3.0 lint:jshint /home/coderaiser/redrun
> jshint bin lib test
> redrun@5.3.0 lint:eslint-bin /home/coderaiser/redrun
> eslint --rule 'no-console:0' bin
> redrun@5.3.0 lint:eslint-lib /home/coderaiser/redrun
> eslint lib test
> redrun@5.3.0 lint:jscs /home/coderaiser/redrun
> jscs --esnext bin lib test
real 1m12.570s
user 0m14.431s
sys 0m17.147s
coderaiserser@cloudcmd:~/redrun$ time npm run speed:npm-run
redrun@5.3.0 speed:npm-run /home/coderaiser/redrun
> npm run lint:jshint && npm run lint:eslint-bin && npm run lint:eslint-lib && npm run lint:jscs
> redrun@5.3.0 lint:jshint /home/coderaiser/redrun
> jshint bin lib test
> redrun@5.3.0 lint:eslint-bin /home/coderaiser/redrun
> eslint --rule 'no-console:0' bin
> redrun@5.3.0 lint:eslint-lib /home/coderaiser/redrun
> eslint lib test
> redrun@5.3.0 lint:jscs /home/coderaiser/redrun
> jscs --esnext bin lib test
real 1m10.727s
user 0m14.670s
sys 0m16.663s
coderaiser@cloudcmd:~/redrun$ redrun lint:*
> jshint bin lib test && eslint --rule 'no-console:0' bin && eslint lib test && jscs --esnext bin lib test
real 0m38.312s
user 0m8.198s
sys 0m9.113s
As you can see redrun is much faster and more DRY way of using npm scripts than regular solutions.
MIT
600 commits
1 commits
JavaScript
96.0%
Shell
4.0%
CLI tool to run multiple npm-scripts fast. Supports madly comfortable π Madrun.

npm i redrun -g
Usage: redrun [...tasks] [options] [-- ...args]
Options:
-p, --parallel run scripts in parallel
-s, --series run scripts in series
-q, --quiet do not output result command before execution
-c, --calm return zero exit code when command completed with error
-P, --parallel-calm run scripts in parallel and return zero exit code
-S, --series-calm run scripts in series and return zero exit code
-h, --help display this help and exit
-v, --version output version information and exit
You can enable tab-completion of npm scripts similar to npm's completion using:
redrun-completion >> ~/.bashrc
redrun-completion >> ~/.zshrc
You may also pipe the output of redrun-completion to a file such as /usr/local/etc/bash_completion.d/redrun if you have a system that will read that file for you.
package.json:
{
"scripts": {
"one": "npm run two",
"two": "npm run three",
"three": "echo 'hello'"
}
}
Usually these expressions would be executed one after another:
coderaiser@cloudcmd:~/redrun$ npm run one
> redrun@1.0.0 one /home/coderaiser/redrun
> npm run two
> redrun@1.0.0 two /home/coderaiser/redrun
> npm run three
> redrun@1.0.0 three /home/coderaiser/redrun
> echo 'hello'
hello
All these npm run commands that are created are slow, because each time it creates a new process.
redrun makes it faster:
coderaiser@cloudcmd:~/redrun$ redrun one
> echo 'hello'
hello
Redrun could be used via the command line, the scripts section of package.json or in a script:
import redrun from 'redrun';
await redrun('one', {
one: 'npm run two',
two: 'npm run three',
three: `echo 'hello'`,
});
// returns
`echo 'hello'`;
await redrun('one', {
one: 'redrun -p two three',
two: 'redrun four five',
three: `echo 'hello'`,
four: 'jshint lib',
five: 'jscs test',
});
// returns
`jshint lib && jscs test & echo 'hello'`;
The less spend time is better:
npm-run-all: 1m12.570snpm run && npm run: 1m10.727sredrun: 0m38.312sHere are logs:
coderaiser@cloudcmd:~/redrun$ time npm run speed:npm-run-all
> speed:npm-run-all /home/coderaiser/redrun
> npm-run-all lint:*
> redrun@5.3.0 lint:jshint /home/coderaiser/redrun
> jshint bin lib test
> redrun@5.3.0 lint:eslint-bin /home/coderaiser/redrun
> eslint --rule 'no-console:0' bin
> redrun@5.3.0 lint:eslint-lib /home/coderaiser/redrun
> eslint lib test
> redrun@5.3.0 lint:jscs /home/coderaiser/redrun
> jscs --esnext bin lib test
real 1m12.570s
user 0m14.431s
sys 0m17.147s
coderaiserser@cloudcmd:~/redrun$ time npm run speed:npm-run
redrun@5.3.0 speed:npm-run /home/coderaiser/redrun
> npm run lint:jshint && npm run lint:eslint-bin && npm run lint:eslint-lib && npm run lint:jscs
> redrun@5.3.0 lint:jshint /home/coderaiser/redrun
> jshint bin lib test
> redrun@5.3.0 lint:eslint-bin /home/coderaiser/redrun
> eslint --rule 'no-console:0' bin
> redrun@5.3.0 lint:eslint-lib /home/coderaiser/redrun
> eslint lib test
> redrun@5.3.0 lint:jscs /home/coderaiser/redrun
> jscs --esnext bin lib test
real 1m10.727s
user 0m14.670s
sys 0m16.663s
coderaiser@cloudcmd:~/redrun$ redrun lint:*
> jshint bin lib test && eslint --rule 'no-console:0' bin && eslint lib test && jscs --esnext bin lib test
real 0m38.312s
user 0m8.198s
sys 0m9.113s
As you can see redrun is much faster and more DRY way of using npm scripts than regular solutions.
MIT
600 commits
1 commits
JavaScript
96.0%
Shell
4.0%