3 回答
TA贡献1807条经验 获得超9个赞
这是因为您正在使用 ,这是预期的行为。concurrently
当您关闭窗口(并在macOS上退出程序)时,电子过程确实会停止,但是您在终端中发出的命令仍在运行,因为您仍在运行 。react-scripts
查看脚本,您说要运行命令和 .当您关闭电子应用程序时,它会告诉您该过程已结束()。但是,您只结束了您创建的 2 个进程中的 1 个。创建的进程仍在运行,因此终端控制权不会返回给您。electron-dev
npm start
wait-on http://localhost:3000 && electron .\
wait-on http://localhost:3000 && electron . exited with code 0
npm start
npm start
执行命令 ,该命令设置开发环境并启动服务器。您有几个选项可以杀死该过程,CTRL + C是其中最简单的。react-scripts start
打包应用程序时,您不会遇到此问题,当用户关闭窗口(或在macOS上退出程序)时,应用程序将完全关闭
TA贡献1875条经验 获得超5个赞
解决此问题的最优雅方法是在脚本中使用 / 选项。--kill-others-kconcurrently
在我的包文件中,在脚本下:
"dev": "concurrently \"npm run client\" \"wait-on tcp:3000 && electron .\" -k",
在相关进程的任何类型的退出中,其他进程也将停止。这可以由 进一步控制,如其文档中所述:--kill-others-on-fail
https://www.npmjs.com/package/concurrently
Killing other processes
-k, --kill-others kill other processes if one exits or dies [boolean]
--kill-others-on-fail kill other processes if one exits with non zero
status code [boolean]
添加回答
举报