@tunnckocore/execa
Thin layer on top of execa
that allows executing multiple commands in parallel or in sequence with control for concurrency
Install
Requires Node.js v8.11+
yarn add @tunnckocore/execa
API
Generated using jest-runner-docs@v0.1.0.
Uses [execa][] v2, execa.command()
method.
As stated there, think of it as mix of child_process
's .execFile
and .spawn
.
It is pretty similar to the .shell
method too, but only visually because
it does not uses the system's shell, meaning it does not have access to
the system's environment variables. You also can control concurrency by
passing options.concurrency
option. For example, pass concurrency: 1
to run in series
instead of in parallel which is the default behavior.
Signature
function(cmds, options)
Params
- cmds - a commands to execute in parallel or series
- options - directly passed to [execa][] and so to
child_process
- returns - resolved or rejected promises
It also can accept array of multiple strings of commands that will be
executed in series or in parallel (default).
Example
import { exec } from '@tunnckocore/execa';
async function main() {
await exec('echo "hello world"', { stdio: 'inherit' });
await exec([
'prettier-eslint --write foobar.js',
'eslint --format codeframe foobar.js --fix'
], { stdio: 'inherit', preferLocal: true, concurrency: 1 });
}
main();
Similar to exec
, but also can access the system's environment variables from the command.
Signature
function(cmds, options)
Params
- cmds - a commands to execute in parallel or series
- options - directly passed to
execa
- returns - resolved or rejected promises
Example
import { shell } from '@tunnckocore/execa';
async function main() {
await shell([
'echo unicorns',
'echo "foo-$HOME-bar"',
'echo dragons'
], { stdio: 'inherit' });
try {
await shell([
'exit 3',
'echo nah'
]);
} catch (er) {
console.error(er);
}
}
main();
Same as [execa][]'s default export, see its documentation.
Think of this as a mix of child_process.execFile()
and child_process.spawn()
.
Signature
function(file, args, options)
Params
- file - executable to run
- args - arguments / flags to be passed to
file
- options - optional options, passed to
child_process
's methods
Example
import execa from '@tunnckocore/execa'
async function main() {
await execa('npm', ['install', '--save-dev', 'react'], { stdio: 'inherit' });
}
main();