Node.js Electron主进程-无法在Windows上获取用户输入

Node.js Electron主进程-无法在Windows上获取用户输入,node.js,windows,electron,command-line-interface,stdin,Node.js,Windows,Electron,Command Line Interface,Stdin,我们正在构建一个需要命令行和图形用户界面的跨平台(OS)工具。 我们选择Electron作为解决方案,但在试图以CLI模式从用户获取输入时遇到了问题 似乎electron的主进程不支持Windows上的标准输入法。 带Electron 8.0.0的windows 10 最基本的例子是: var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, outp

我们正在构建一个需要命令行和图形用户界面的跨平台(OS)工具。 我们选择Electron作为解决方案,但在试图以CLI模式从用户获取输入时遇到了问题

似乎electron的主进程不支持Windows上的标准输入法。 带Electron 8.0.0的windows 10

最基本的例子是:

var readline = require('readline');
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
  });
  rl.question('Question: ', (question) => {
    console.log(question)
    rl.close();
});
网上有一些关于它的讨论,但没有一个具体的答案。 克服这个问题将使部署/发布过程变得更加容易,所以我们也愿意考虑解决方案/黑客: 使用诸如electron prompt之类的库(它使用对话框提示用户)并不是一个选项,因为它们破坏了CLI的外观


谢谢

不幸的是,在Windows上仅使用electron是不可能的。我能想到的最好的办法是检测操作系统是否是Windows,然后使用stdin生成一个cmd进程来捕获用户输入,并使用stdout将其返回到electron进程。你是说从electron的主进程生成一个进程吗?有可能在同一个终端上获得输入吗?我想有可能是的。如果存在CLI参数,则只能在Windows上生成CMD进程。我看到了你对这个问题的评论。你也可以试试这方面的建议。实际上我打电话给stelcheck是关于这个问题的:)因为我真的很想解决它。问题是,如果您想要生成一个子进程,您需要将其传递给父进程的stdin(在本例中,它不起作用)。stelcheck所做的恰恰相反。他把电子过程包起来。(这对我的案子没有帮助)