Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭Electron应用程序不会停止脚本_Javascript_Node.js_Reactjs_Npm_Electron - Fatal编程技术网

Javascript 关闭Electron应用程序不会停止脚本

Javascript 关闭Electron应用程序不会停止脚本,javascript,node.js,reactjs,npm,electron,Javascript,Node.js,Reactjs,Npm,Electron,我有点问题,希望有人能帮我解决 我有一个Electron+React桌面应用程序,我需要正确处理它的关闭。 当我关闭应用程序(单击窗口上的X)时,程序停止,但是,我用来运行程序的终端窗口没有停止 我使用此脚本运行程序: npm run electron-dev 这就是: "scripts": { "start": "react-scripts start", "electron-dev": "concurrently \"npm run start\" \"wait-on http

我有点问题,希望有人能帮我解决

我有一个Electron+React桌面应用程序,我需要正确处理它的关闭。 当我关闭应用程序(单击窗口上的X)时,程序停止,但是,我用来运行程序的终端窗口没有停止

我使用此脚本运行程序:

npm run electron-dev
这就是:

"scripts": {
   "start": "react-scripts start",
   "electron-dev": "concurrently \"npm run start\" \"wait-on http://localhost:3000 && electron .\""
 }
我正常运行我的应用程序,当我关闭窗口时,我的终端会:

wait-on http://localhost:3000 && electron . exited with code 0
但是我不能在我的终端上打字,除非我用一个控件+C终止程序

以下是我如何处理应用程序关闭:

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
     app.quit();
   }
});

app.on('before-quit', () => {
    mainWindow.removeAllListeners('close');
    mainWindow.close();
});

有人能帮我吗?

这是因为您同时使用
,这是预期的行为

当您关闭窗口(并退出macOS上的程序)时,electron进程确实停止,但是您在终端中发出的命令仍在运行,因为您仍在运行
react scripts

看看你的
electron-dev
脚本,你说你想运行命令
npm-start
等待http://localhost:3000 &&电子。\
。当您关闭electron应用程序时,它会告诉您该过程已结束(
等待)http://localhost:3000 &&电子。已退出,代码为0
)。但是,您只结束了创建的2个进程中的1个。创建的进程
npm start
仍在运行,因此终端控制不会返回给您

npm start
执行命令
react scripts start
,该命令设置开发环境并启动服务器。你有,CTRL+C是其中最简单的


打包应用程序时,不会出现此问题,当用户关闭窗口(或退出macOS上的程序)时,应用程序将完全关闭。

这是因为您同时使用
,这是预期行为

当您关闭窗口(并退出macOS上的程序)时,electron进程确实停止,但是您在终端中发出的命令仍在运行,因为您仍在运行
react scripts

看看你的
electron-dev
脚本,你说你想运行命令
npm-start
等待http://localhost:3000 &&电子。\
。当您关闭electron应用程序时,它会告诉您该过程已结束(
等待)http://localhost:3000 &&电子。已退出,代码为0
)。但是,您只结束了创建的2个进程中的1个。创建的进程
npm start
仍在运行,因此终端控制不会返回给您

npm start
执行命令
react scripts start
,该命令设置开发环境并启动服务器。你有,CTRL+C是其中最简单的


当您打包应用程序时,您不会遇到此问题,当用户关闭窗口(或退出macOS上的程序)时,应用程序将完全关闭。

您在哪个平台上?我在多个平台上遇到过此问题,特别是Windows和Linux您在哪个平台上?我在多个平台上遇到过此问题,特别是Windows和Linux非常感谢,但是有没有什么方法可以让我在应用程序内部关闭这个过程,而不打包它呢?也许吧,但这真的很麻烦。你为什么要这么做?您可以使用CTRL+C在终端中同时终止两个进程。非常感谢,但是有没有任何方法可以从应用程序内部关闭进程,而无需打包?也许可以,但这会非常麻烦。你为什么要这么做?您只需使用CTRL+C来终止终端中的两个进程。