spawn-sync
Polyfill for child_process.spawnSync
.
On iojs and node >= 0.12 it will just export the built in child_process.spawnSync
. On platforms that support compiling native modules it uses the thread-sleep module to wait for an output file to exist in a tight loop. In this way it gains excellent cross platform support, but don't expect it to be efficient on all platforms.
Installation
npm install spawn-sync
If this fails, you can try one of the following things:
Some package managers made a stupid decision to rename the
node
executable tonodejs
for their platform. This breaks compatibility with lots of modules. If you normally usenodejs
instead ofnode
, you should check out http://stackoverflow.com/questions/18130164/nodejs-vs-node-on-ubuntu-12-04 for possible fixes.-
You can install using
--unsafe-perm
, which will fix any permissions issues.npm install --unsafe-perm spawn-sync
-
You can install using
--ignore-scripts
, which will skip native compilation. You'll get a warning if you try to require the module, but everything should still work.npm install --ignore-scripts spawn-sync
-
You can try updating npm, since this seems to fail on some older versions of npm:
sudo npm install npm -g
You can upgrade to the latest version of node or iojs. This will make native compilation unnecessary. You can then use
--ignore-scripts
without getting a warning if you still have trouble.
Usage
var spawnSync = require('spawn-sync');
var result = spawnSync('node',
['filename.js'],
{input: 'write this to stdin'});
if (result.status !== 0) {
process.stderr.write(result.stderr);
process.exit(result.status);
} else {
process.stdout.write(result.stdout);
process.stderr.write(result.stderr);
}
License
MIT