|
|
6 years ago | |
|---|---|---|
| .. | ||
| lib | 6 years ago | |
| LICENSE | 6 years ago | |
| README.md | 6 years ago | |
| index.js | 6 years ago | |
| package.json | 6 years ago | |
README.md
cross-spawn
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
delordir - 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.