Node.js - поток данных из процесса внука - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно передать данные от дочернего процесса, порожденного дочерним процессом, который я порождал в некотором коде NodeJ. Я надеялся, что смогу как-то указать моему ребенку, что любые его потомки должны также передавать данные на указанный вами stdio.

Я запускаю сторонний инструмент, который, в свою очередь, кажетсясоздать свой собственный дочерний процесс. Я могу транслировать логи из исходного дочернего процесса (который я породил), но не из процесса внука (который порождает сторонний инструмент). Журналы внука буферизируются до завершения команды.

Мой код выглядит примерно так:

const command = spawn(COMMAND, [...ARGS, '--', ...restFlags], {
  stdio: 'inherit',
});

command.on('exit', code => {
  console.log('Process exited with code ' + code.toString());
});

command.on('message', data => {
  console.log(data);
});

COMMAND в итоге вызывает скрипт npm с аргументом restFlags (отсюда флаг '-' для разделения аргументов для пересылки в скрипт npm). Это вывод этого npm-скрипта, который буферизируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...