Столкнулся с необходимостью запуска внешнего процесса из нодовского скрипта. Допустим внешний процесс запускается командой
yarn install
В нодовском модуле child_process есть неблокирующий метод exec, с помощью коллбэка которого я могу видеть ошибки
exec('yarn install', function (error, stdout, stderr) {
if (error) console.log(error.code)
})
Однако, мне нужно, чтобы операция выполнялась синхронно, для чего я использую execSync,
execSync('yarn install')
который уже не выводить в консоль никаких сообщений.
Как получить поток вывода?
Функция execSync позволяет задавать произвольные потоки stdin, stdout, stderr через параметр stdio.
Например, если вы хотите перенаправить содержимое stdout порождаемого процесса в stdout родительского процесса, то можно использовать вот такой код:
var execSync = require('child_process').execSync;
execSync('ls -l ~', {stdio: ['ignore', process.stdout, 'ignore']});
Подробнее о параметре stdio можно почитать в официальной документации.
Продвижение своими сайтами как стратегия роста и независимости