Estoy tratando de usar la función child_process.spawn
. La sintaxis esnodeJS child_process.spawn no funciona cuando uno de los args tiene un espacio en él
child_process.spawn(command, args=[], [options])
Siempre incluyo un espacio en cualquiera de los elementos de la matriz args, el comando simplemente emite el argumento. Este es un código que utilicé para probarlo
var spawn = require("child_process").spawn
console.log("This works");
var watcher = spawn("ls", ["-l"]);
watcher.stdout.on('data', function(data) {
process.stdout.write(data.toString());
});
console.log("This does not work");
watcher = spawn("ls", ["-l", "/path with space in it"]);
watcher.stdout.on('data', function(data) {
process.stdout.write(data.toString());
});
¿Este es un error en el nodo? ¿Necesito escapar del espacio?
Editar: El código de arriba es solo un ejemplo. Aquí está el código real. ¿Tal vez tiene que ver con las tuberías?
watcher = spawn("supervisor", ["--extensions\ 'coffee|js|css|coffeekup'", "src/app.coffee"]);
Parece que funciona bien para mí usando el nodo 0.6.17 en Linux en el REPL. Creó un directorio con el mismo nombre en el nivel raíz y usó su código. –
También se trabajó desde un archivo. ¿Podría proporcionar más información, como la versión de nodo y el sistema operativo? –
¿Qué versión de nodo estás ejecutando? – joshuapoehls