无法通过spawnCommand

时间:2018-10-30 18:58:47

标签: javascript node.js yeoman

由于某些原因,我无法从Yeoman的this.spawnCommandspawnCommandSync方法中捕获以下内容的输出:

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

console.log(result);

result的输出显示所有流都为null,即使我故意做错了一些操作以使git发出“致命”响应:

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

我的理解是,当用户尝试执行某项操作(例如,克隆不存在的存储库)时,以上内容应捕获git抛出的“致命”错误消息。

我正试图收集此信息,以便可以从Yeoman发电机中退出。

如何与Yeoman一起使用?他们关于spawnCommand和spawnCommandSync的文档显示不多,我知道它们只是spawn / spawn同步的包装,这使我更加困惑,为什么上面的命令不适用于git命令。据我所知,如果不指定任何stdio选项,则应该在父/子之间获得管道。我想念什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我通过在opts中添加以下内容来解决此问题:

stdio: [process.stderr]