child_process 的 spawn、exec、execFile 有什么区别?

三者都用于启动子进程,差异在流式 vs 缓冲、是否走 shell:

import { spawn } from 'child_process'
const ls = spawn('ls', ['-lh', '/usr'])
ls.stdout.on('data', d => process.stdout.write(d))

建议:需要实时/大输出用 spawn;简单拿结果用 execFile;避免把用户输入拼进 exec(命令注入风险)。

同分类其他题目