cross-spawn
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/cross-spawn package

    4.0.2 • Public • Published

    cross-spawn

    NPM version Downloads Build Status Build status Dependency status Dev Dependency status

    A cross platform solution to node's spawn and spawnSync.

    Installation

    $ npm install cross-spawn

    If you are using spawnSync on node 0.10 or older, you will also need to install spawn-sync:

    $ npm install spawn-sync

    Why

    Node has issues when using spawn on Windows:

    • It ignores PATHEXT
    • It does not support shebangs
    • It does not allow you to run del or dir
    • It does not properly escape arguments with spaces or special characters

    All these issues are handled correctly by cross-spawn. There are some known modules, such as win-spawn, that try to solve this but they are either broken or provide faulty escaping of shell arguments.

    Usage

    Exactly the same way as node's spawn or spawnSync, so it's a drop in replacement.

    var spawn = require('cross-spawn');
     
    // Spawn NPM asynchronously
    var child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
     
    // Spawn NPM synchronously
    var results = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });

    Caveat

    On Windows, cross-spawn will only spawn cmd.exe if necessary. If the extension of the executable is .exe or .com, it will spawn it directly. If you wish to override this behavior and always spawn a shell, pass the {shell: true} option.

    Tests

    $ npm test

    License

    Released under the MIT License.

    Install

    npm i cross-spawn@4.0.2

    Version

    4.0.2

    License

    MIT

    Last publish

    Collaborators

    • satazor