当子进程需要用户输入时,Node.js子进程生成不起作用

时间:2019-03-19 08:54:45

标签: javascript node.js

我正在创建一个nodejs脚本,其中包含一个运行Windows cmd命令(如cordova build android --releasekeytool -genkey以及其他一些可能需要或不需要额外用户输入的命令)的功能。

当我提供诸如runcmd('ping','google.com');之类的简单输出命令时,以下代码可以正常工作并连续显示输出,而当我提供诸如runcmd('keytool', '-genkey');之类的需要用户额外输入的命令时,则不然。

function runcmd(cmd, args) {
    var { spawn } = require('child_process');
    var argsArr = args.split(" ");
    var child = spawn(cmd, argsArr);

    child.stdout.on('data', (chunk) => {
        console.log(chunk.toString());
    });

    child.on('close', (code) => {
        console.log(`child process exited with code ${code}`);
    });
}

simple commands run fine

user input commands fails

我的问题是如何修改此代码以使此命令起作用。

0 个答案:

没有答案