No se puede escribir en la entrada estándar de un child_process generado en Windows

El siguiente código funciona bien en Linux, pero se interrumpe en Windows 7

var spawn = require('child_process').spawn; var sass = spawn('sass'); sass.stdout.on('data', function (data) { console.log('' + data); }); sass.stdin.write('.asdfsadf\n color: red', function () { sass.stdin.end() }); 

El error que recibo es

 events.js:72 throw er; // Unhandled 'error' event ^ Error: This socket is closed. at Socket._write (net.js:637:19) at doWrite (_stream_writable.js:226:10) at writeOrBuffer (_stream_writable.js:216:5) at Socket.Writable.write (_stream_writable.js:183:11) at Socket.write (net.js:615:40) at Object. (e:\Projects\scaffold-angular\test.js:18:12) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) 

También he intentado esto con slimrb , el mismo error ‘socket is closed’.

Todos los comandos funcionan cuando lo ingreso manualmente en la consola (probé MINGW32 y la línea de comandos normal de Windows).

 $ sass .asdfsadf color: red ^Z .asdfsadf { color: red; } 

Mi nodo es v0.10.28
edición: actualizado a v0.10.29 , mismo problema 🙁

Puede usar el paquete cross-spawn como un reemplazo child_process.spawn para child_process.spawn .