|
|
5 years ago | |
|---|---|---|
| .. | ||
| lib | 5 years ago | |
| node_modules | 5 years ago | |
| CHANGELOG.md | 5 years ago | |
| LICENSE | 5 years ago | |
| README.md | 5 years ago | |
| index.js | 5 years ago | |
| package.json | 5 years ago | |
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:
options.shell support on node < v6del or dirAll 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-spawnStarting 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.