產生一個執行命令的新程序

要生成一個需要無緩衝輸出的新程序 (例如,長時間執行的程序可能會在一段時間內列印輸出而不是立即列印和退出),請使用 child_process.spawn()

此方法使用給定命令和引數陣列生成新程序。返回值是 ChildProcess一個例項,它反過來提供 stdoutstderr 屬性。這兩個流都是 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']);