Мне нужно передать данные от дочернего процесса, порожденного дочерним процессом, который я порождал в некотором коде 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-скрипта, который буферизируется.