stdout / stderr недоступен в Yeoman / Node с помощью spawnCommand - PullRequest
0 голосов
/ 30 октября 2018

По какой-то причине я не могу захватить вывод следующего из метода Йомана this.spawnCommand или spawnCommandSync:

const result = this.spawnCommandSync(
  "git",
  ["checkout", "-b", branchName],
  {
    cwd: this.destinationRoot(folderName),
    shell: true
  }
);

console.log(result);

Вывод result показывает, что все потоки равны нулю, даже когда я делаю что-то преднамеренно неправильно, чтобы заставить git выдать "фатальный" ответ:

 { status: 128,
  signal: null,
  output: [ null, null, null ],
  pid: 36926,
  stdout: null,
  stderr: null,
  error: null }

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

Я пытаюсь собрать эту информацию, чтобы выручить из своего йоменского генератора.

Как мне это сделать с Йоманом? Их документация по spawnCommand и spawnCommandSync не показывает много, и я понял, что они просто обертки для синхронизации spawn / spawn, что делает меня более озадачивающим, почему вышеописанное не работает для команд git. Из того, что я могу сказать, если я не укажу никаких опций stdio, я должен получить каналы между родителем / потомком. Я что-то упустил?

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Я решил это, добавив следующее в опции:

stdio: [process.stderr]

...