首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Electron-React应用程序运行外部脚本

问如何使用Electron-React应用程序运行外部脚本
EN

Stack Overflow用户
提问于 2021-07-09 01:24:50
回答 1查看 104关注 0票数 0

我正在尝试写一个桌面应用程序使用电子(与反应)。

当用户点击桌面应用程序中的按钮时,它将运行外部Node.js脚本。我想使用Electron来建立一个图形用户界面,能够调用脚本做一些工作后,用户点击按钮。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-09 04:42:12

查看child_process节点js模块。您可以实现类似以下内容:

在客户端:

代码语言:javascript
复制
const { ipcRenderer } = require("electron");
document.getElementById("someButton").addEventListener(e => {
  ipcRenderer.send("runScript");
});

在电子方面:

代码语言:javascript
复制
const { ipcMain } = require("electron");
const exec = require('child_process').exec;

ipcMain.on("runScript", (event, data) => {
   exec("node script.js", (error, stdout, stderr) => { 
        console.log(stdout);
    });
});

请记住,为了在客户端使用ipcRenderer,您可能需要在浏览器窗口中启用nodeIntegration。

为了能够杀死一个进程,您必须使用child_process.spawn方法并将其保存在一个变量中,然后运行variableThatProcessWasSpawned.stdin.pause();,然后运行variableThatProcessWasSpawned.kill()。例如

代码语言:javascript
复制
const spawn = require('child_process').spawn ;

let process = null;

ipcMain.on("runScript", (event, data) => {
   process = spawn("node script.js");
});

ipcMain.on("killProcess", (event, data) => {
   if(process !== null) {
       process.stdin.pause();
       process.stdin.kill();
       process = null;
   }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68306193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档