我试图在电子应用程序中单击某个元素来执行命令。
代码是:
function displayadbinfo(command) {
const childProcess = require('child_process');
alert(childProcess.execSync(command).toString());
}
当我单击以npm start
启动的应用程序时,此代码会弹出警报。但是,生成可执行文件后,该命令将返回空响应。
答案 0 :(得分:0)
child_process.execSync
返回缓冲区或字符串而不是流,这可能导致响应为空。它等待子进程退出并尝试一次返回所有缓冲的数据。我建议您使用child_process.spawn
。
区别在于child_process.spawn
返回一个ChildProcess
对象,并且stdout
和stderr
可以使用流进行访问,而不是作为缓冲区同步返回。因此,您将能够正确看到输出。
我不确定electron-builder
或electron-packager
是否可能引起问题。
您可以找到一篇文章,讨论spawn ()
和exec ()
here on hacksparrow.com