"Fossies" - the Fresh Open Source Software Archive

Member "node-v12.18.4-win-x64/node_modules/npm/node_modules/cross-spawn/README.md" (14 Feb 2020, 3456 Bytes) of package /windows/www/node-v12.18.4-win-x64.zip:

As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.


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

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


$ 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


Node has issues when using spawn on Windows:

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.


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' });


options.shell as an alternative to cross-spawn

Starting from node v6, spawn has a shell option that allows you run commands from within a shell. This new option solves most of the problems that cross-spawn attempts to solve, but:

If you are using the shell option to spawn a command in a cross platform way, consider using cross-spawn instead. You have been warned.


While cross-spawn handles shebangs on Windows, its support is limited: e.g.: it doesn’t handle arguments after the path, e.g.: #!/bin/bash -e.

Remember to always test your code on Windows!


$ npm test


Released under the MIT License.