Download Latest Version v10.0.0 source code.zip (604.9 kB)
Email in envelope

Get an email when there's a new version of EXECA

Home / v10.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-17 4.7 kB
v10.0.0 source code.tar.gz 2026-07-17 345.5 kB
v10.0.0 source code.zip 2026-07-17 604.9 kB
Totals: 3 Items   955.1 kB 0

Breaking

  • Require Node.js 22. (#1243) 04b4454

  • The subprocess is now a normal promise, instead of a ChildProcess instance augmented with promise methods. All the methods and properties documented by Execa are unchanged. Node.js-specific ChildProcess APIs (such as .on(), .send(), .ref() and .unref()) must now be accessed through the new subprocess.nodeChildProcess property. (#1255) ade74bf

    :::diff const subprocess = execa('node', ['file.js']);

    • subprocess.on('spawn', onSpawn);
    • subprocess.nodeChildProcess.on('spawn', onSpawn);
  • Removed execaCommand() and execaCommandSync(). Use the template string syntax instead, which splits on spaces. If the command is a dynamic string, split it with parseCommandString(). (#1244) 3ced394

    :::diff

    • await execaCommand('npm run build');
    • await execanpm run build;

    • await execaCommand(commandString);

    • await execa${parseCommandString(commandString)};
  • Removed the old undocumented stdio: [..., 'ipc'] syntax. Use the ipc: true option instead. (#1245) dcf611c

    :::diff

    • await execa('node', ['file.js'], {stdio: ['pipe', 'pipe', 'pipe', 'ipc']});
    • await execa('node', ['file.js'], {ipc: true});
  • When the input or inputFile option is combined with an inherited stdin (for example stdio: 'inherit'), the explicit input is now used, instead of being ignored. To combine multiple inputs, pass an array like stdin: ['inherit', {string: 'input'}]. (#1232) 3ed0544

Improvements

Fixes


https://github.com/sindresorhus/execa/compare/v9.6.1...v10.0.0

Source: README.md, updated 2026-07-17