產生一個執行命令的新程序
要生成一個需要無緩衝輸出的新程序 (例如,長時間執行的程序可能會在一段時間內列印輸出而不是立即列印和退出),請使用 child_process.spawn()
。
此方法使用給定命令和引數陣列生成新程序。返回值是 ChildProcess
的一個例項,它反過來提供 stdout
和 stderr
屬性。這兩個流都是 stream.Readable
的例項。
以下程式碼相當於使用命令 ls -lh /usr
。
const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
另一個示例命令:
zip -0vr "archive" ./image.png
可能寫成:
spawn('zip', ['-0vr', '"archive"', './image.png']);