child_process.spawn
関数を使用しようとしています。構文はargJの1つにスペースがあると、nodeJS child_process.spawnが機能しません
child_process.spawn(command, args=[], [options])
のいずれかの引数配列にスペースを含めると、単に引数が出力されます。ここでは、私がそれをテストするために使用したいくつかのコードです
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());
});
これはノードのバグですか?私はそのスペースから脱出する必要がありますか?
上記のコードは単なる例に過ぎません。ここに実際のコードがあります。 多分パイプと関連がありますか?あなたは子プロセスからの迅速な診断出力を取得したい場合は私が見つけた便利な小さなショートカットが通過しているだけで、アレイ
var watcher = spawn("supervisor", [
"--extensions",
"'coffee|js|css|coffeekup'",
"src/app.coffee"
]);
に別の引数を使用し、args
にスペースを
watcher = spawn("supervisor", ["--extensions\ 'coffee|js|css|coffeekup'", "src/app.coffee"]);
Linux上でノード0.6.17をREPLで使用しているとうまく動作しているようです。ルートレベルで同じ名前のディレクトリを作成し、コードを使用しました。 –
また、ファイルから作業しました。ノードのバージョンやOSなどの詳細情報を提供できますか? –
実行しているノードのバージョンは? – joshuapoehls