Получение непрерывной информации на консоли при выполнении команды, запущенной из узла

#node.js

#node.js

Вопрос:

У меня есть следующий файл exec-deploy.js

 // exec-deploy.js
const exec = require('child_process').exec
exec("npm run deploy", (err, stdout, stderr) => console.log(stdout))
  

npm run deploy при вызове из командной строки печатает много данных во время выполнения, предоставляя мне информацию о ходе развертывания.

Если я выполняю exec-deploy с node exec-deploy помощью, я вижу всю информацию только в конце выполнения, напечатанную одним кадром на консоли.

Возможно ли получать непрерывный поток информации на терминале, даже когда я выполняю скрипт npm из javascript?

Ответ №1:

После некоторого чтения официальной документации и этой интересной статьи я нашел решение своей проблемы, которое заключается в использовании spawn вместо exec указания следующих опций

 spawn('npm run deploy', null, {
    stdio: 'inherit',
    shell: true,
});
  

Комментарии:

1. Отличная работа по поиску решения вашей проблемы! Вы можете помочь сообществу, отметив этот вопрос как решенный.