0

我正在尝试从 nodejs 以交互模式运行 golang 应用程序(以便它会提示用户提供所需的信息),如下所示:

childprocess.execFileSync(pulumiExecutable, ["stack", "select"], { encoding: "utf-8", shell: true, stdio: "inherit" });

但是,如果它认为它不是从终端运行的,它会使用此功能自动禁用交互模式。大概是因为IsTerminal()返回错误。

鉴于我告诉 nodejs 从父进程继承 IO 流,我想知道在从 nodejs 中调用 pulumi 时我还能尝试做什么以保持交互模式。

4

1 回答 1

1

事实证明,它没有在交互模式下运行有两个原因:

  1. 将 nodejs 程序作为 WebStorm 运行配置运行使其非交互式。
  2. 在 shell 模式下运行子进程也使其非交互。

这在从终端运行 nodejs 程序时有效:

childprocess.execFileSync(pulumiExecutable, ["stack", "select"], { encoding: "utf-8", stdio: "inherit" });
于 2020-05-26T21:17:11.617 回答