Node.js 将文本作为 `spawnSync` 的标准输入传递
Node.js pass text as stdin of `spawnSync`
我认为这会很简单,但下面的操作并不像预期的那样。
我想将数据通过管道传输到一个进程,例如(只是用于说明的任意命令)wc
,来自 Node.
docs and other SO questions 似乎表明传递 Stream 应该有效:
const {spawnSync} = require('child_process')
const {Readable} = require('stream')
const textStream = new Readable()
textStream.push("one two three")
textStream.push(null)
const stdio = [textStream, process.stdout, process.stderr]
spawnSync('wc', ["-c"], { stdio })
不幸的是,这会引发错误:
The value "Readable { ... } is invalid for option "stdio"
relevant bit of code from internal/child_process.js
不会立即显示预期的有效选项是什么。
要将特定数据显示为子进程的 stdin
数据,您可以使用 input
选项:
spawnSync('wc', ['-c'], { input : 'one two three' })
我认为这会很简单,但下面的操作并不像预期的那样。
我想将数据通过管道传输到一个进程,例如(只是用于说明的任意命令)wc
,来自 Node.
docs and other SO questions 似乎表明传递 Stream 应该有效:
const {spawnSync} = require('child_process')
const {Readable} = require('stream')
const textStream = new Readable()
textStream.push("one two three")
textStream.push(null)
const stdio = [textStream, process.stdout, process.stderr]
spawnSync('wc', ["-c"], { stdio })
不幸的是,这会引发错误:
The value "Readable { ... } is invalid for option "stdio"
relevant bit of code from internal/child_process.js
不会立即显示预期的有效选项是什么。
要将特定数据显示为子进程的 stdin
数据,您可以使用 input
选项:
spawnSync('wc', ['-c'], { input : 'one two three' })