gio*_*lio 7 javascript node.js
我正在尝试使用该child_process.spawn功能.语法是
child_process.spawn(command, args=[], [options])
Run Code Online (Sandbox Code Playgroud)
每当我在args数组的任何元素中包含空格时,该命令只会发出参数.这是我用来测试它的一些代码
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());
});
Run Code Online (Sandbox Code Playgroud)
这是节点中的错误吗?我需要逃离这个空间吗?
编辑:上面的代码只是一个例子.这是真正的代码.也许与管道有关?
watcher = spawn("supervisor", ["--extensions\ 'coffee|js|css|coffeekup'", "src/app.coffee"]);
Run Code Online (Sandbox Code Playgroud)
mač*_*ček 23
不要放入空格args,只需在数组中使用另一个参数
var watcher = spawn("supervisor", [
"--extensions",
"'coffee|js|css|coffeekup'",
"src/app.coffee"
]);
Run Code Online (Sandbox Code Playgroud)
一个方便的小捷径,我发现,如果你想从你的子进程得到快速诊断输出传递{stdio: "inherit"}中options
var watcher = spawn("supervisor", [
"--extensions",
"'coffee|js|css|coffeekup'",
"src/app.coffee"
], {stdio: "inherit"});
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以立即查看一切是否正常工作.
最后,根据supervisor安装位置,您可能需要考虑使用完整路径.
var watcher = spawn("/path/to/supervisor", ...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17883 次 |
| 最近记录: |