我正在尝试使用child_process.spawn
功能。语法是
child_process.spawn(command, args=[], [options])
每当我在 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());
});
这是节点中的错误吗?我需要逃离这个空间吗?
编辑:上面的代码只是一个例子。这是真正的代码。
也许与管道有关?
watcher = spawn("supervisor", ["--extensions\ 'coffee|js|css|coffeekup'", "src/app.coffee"]);
不要输入空格args
,只需使用数组中的另一个参数
var watcher = spawn("supervisor", [
"--extensions",
"'coffee|js|css|coffeekup'",
"src/app.coffee"
]);
如果您想从子进程中获得快速诊断输出,我发现一个方便的小捷径是传递{stdio: "inherit"}
in options
var watcher = spawn("supervisor", [
"--extensions",
"'coffee|js|css|coffeekup'",
"src/app.coffee"
], {stdio: "inherit"});
这样您就可以立即查看一切是否正常工作。
最后,要看在什么地方supervisor
安装后,您可能需要考虑使用完整路径。
var watcher = spawn("/path/to/supervisor", ...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)