The current directory when running the command can be set with the cwd option.
import {execa} from 'execa';
await execa({cwd: '/path/to/cwd'})`npm run build`;And be retrieved with the result.cwd property.
const {cwd} = await execa`npm run build`;Package managers like npm install local binaries in ./node_modules/.bin.
$ npm install -D eslintawait execa('./node_modules/.bin/eslint');The preferLocal option can be used to execute those local binaries.
await execa({preferLocal: true})`eslint`;Those are searched in the current or any parent directory. The localDir option can select a different directory.
await execa({preferLocal: true, localDir: '/path/to/dir'})`eslint`;Execa can be combined with get-bin-path to test the current package's binary. As opposed to hard-coding the path to the binary, this validates that the package.json bin field is correctly set up.
import {execa} from 'execa';
import {getBinPath} from 'get-bin-path';
const binPath = await getBinPath();
await execa(binPath);When the detached option is true, the subprocess runs independently from the current process.
Specific behavior depends on the platform. More info.
await execa({detached: true})`npm run start`;Next: ❌ Errors
Previous: 🐢 Node.js files
Top: Table of contents