为什么 Deno.Command 似乎可以捕获 stdout/stderr _而不_设置“管道”?

问题描述 投票:0回答:1

这是我引用的页面:https://docs.deno.com/api/deno/~/Deno.Command

它表示:如果任何 stdio 选项未设置为“管道”,则访问 Command 或其 CommandOutput 上的相应字段将抛出 TypeError。

但是,该页面上有一些示例,1)不要将任何 stdio 选项设置为“管道”,2)访问 CommandOutput 对象上的“stdout”和“stderr”字段。例如:

const command = new Deno.Command(Deno.execPath(), {
  args: [
    "eval",
    "console.log('hello'); console.error('world')",
  ],
});
const { code, stdout, stderr } = await command.output();
console.assert(code === 0);
console.assert("hello\n" === new TextDecoder().decode(stdout));
console.assert("world\n" === new TextDecoder().decode(stderr));

我在这里缺少什么?

deno
1个回答
0
投票

这是一个文档错误:文档指出默认值是

"inherit"
,但实际上是
"piped"

参见https://github.com/denoland/deno/issues/16891

© www.soinside.com 2019 - 2024. All rights reserved.