Skip to main content

nodejsから実行するコマンドのログをstreamで出力する

以下のような実装を行うことでログを適宜取得できる。

import { spawn } from "child_process";

const cmd = (command: string, args: string, cwd: string): Promise<void> => {
const promise: Promise<void> = new Promise(resolve => {
console.log(`${command} ${args}`);

const childProcess = spawn(command, args.split(" "), { cwd, env });

childProcess.stdout.on("data", data => {
console.log(data.toString().trim()); // streamでログを出力する
});

childProcess.stdout.on("end", () => {
resolve();
});

});
return promise;
};