Electron 电子';s app.relaunch()松开stdio

Electron 电子';s app.relaunch()松开stdio,electron,child-process,relaunch,Electron,Child Process,Relaunch,使用 我可以让我的电子应用程序在源代码更改时自动重新加载。然而,由于主进程被终止,我失去了调试所需的终端输出。有没有办法使用app.relaunch()保留父进程的stdio。不确定2018年是否有更好的办法 我的Electron应用程序的重新加载分为两部分: 渲染过程 我只在渲染器文件夹中使用侦听更改: require(“electron-reload”)(path.join(/renderer”); 主要过程 自动重新加载通过吞咽脚本“手动”处理,如下所示: let child=null;

使用

我可以让我的电子应用程序在源代码更改时自动重新加载。然而,由于主进程被终止,我失去了调试所需的终端输出。有没有办法使用
app.relaunch()
保留父进程的
stdio
。不确定2018年是否有更好的办法

我的Electron应用程序的重新加载分为两部分:

渲染过程 我只在
渲染器
文件夹中使用侦听更改:

require(“electron-reload”)(path.join(/renderer”);
主要过程 自动重新加载通过吞咽脚本“手动”处理,如下所示:

let child=null;
让我们开始=()=>{
//已在运行?请关闭它并重新启动。
if(child)child.kill();
设env=process.env;
env.NODE_env=“dev”;
child=proc.spawn(electron,[“/main/main.js”],{env:env});
功能打印(数据){
设str=data.toString().trim();
if(str)gutil.log(str);
}
child.stdout.on(“数据”,打印);
child.stderr.on(“数据”,打印);
};
//运行(带监视和自动加载的开发模式)
狼吞虎咽的任务(“开发人员”,[“监视”],()=>{
start();
});
//动态观察并移动到dist。
//如果主进程源更改,则硬重置。
狼吞虎咽的任务(“看”,()=>{
//如果./renderer/***.js发生更改,electron reload将仅处理渲染器进程的重新加载。
//如果./main/***/.js发生变化,我们将终止电子进程并启动一个新进程。
大口喝表(“/main/***/.js”,开始);
});

使用
gulprundev
运行应用程序将启动一个监视程序,并在文件更改时终止/重新启动整个应用程序。

您找到解决方案了吗?我也有同样的问题
chokidar.watch(mainFile).on('change', () => {
   app.relaunch();
   app.exit(0);
});