默认情况下,会在父 Node.js 进程和衍生的子进程之间建立 stdin、stdout 和 stderr 的管道。 这些管道的容量有限(且特定于平台)。 如果子进程在没有捕获输出的情况下写入标准输出超过该限制,则子进程会阻塞等待管道缓冲区接受更多数据。
为方便起见,node:child_process
模块提供了一些同步和异步方法替代 child_process.spawn()
和 child_process.spawnSync()
。 这些替代方法中的每一个都是基于 child_process.spawn()
或 child_process.spawnSync()
实现。
child_process.exec()
衍生 shell 并在该 shell 中运行命令,完成后将 stdout 和 stderr 传给回调函数。
const cp = require ('child_process');
cp.exec ('rm -rf dist');
child_process.spawn()
异步衍生子进程,不会阻塞 Node.js 事件循环。
child_process.spawnSync()
以同步方式提供等效的功能,其会阻塞事件循环,直到衍生的进程退出或终止。
网友评论