Node.js Electron app.on(';ready';…从未被调用,Electron窗口从未显示。似乎与特定的Git存储库绑定 总结
我是Electron开发的新手,在创建Electron应用程序的工作中帮助领导了一个小项目。在Git存储库中工作了一天左右后,Electron窗口突然停止出现。我确定我在Node.js Electron app.on(';ready';…从未被调用,Electron窗口从未显示。似乎与特定的Git存储库绑定 总结,node.js,windows,git,electron,Node.js,Windows,Git,Electron,我是Electron开发的新手,在创建Electron应用程序的工作中帮助领导了一个小项目。在Git存储库中工作了一天左右后,Electron窗口突然停止出现。我确定我在app.on('ready'callback)中给出的函数回调永远不会被调用 我的工作站设置: NodeJS版本:12.9.0(也使用10.16.3进行了测试) 纱线版本:1.17.3 操作系统:Windows 10企业版 最初,当Electron开始出现故障时,我对如何使用Electron with React没有太多兴趣,但
app.on('ready'callback)
中给出的函数回调永远不会被调用
我的工作站设置:
NodeJS版本:12.9.0(也使用10.16.3进行了测试)
纱线版本:1.17.3
操作系统:Windows 10企业版
最初,当Electron开始出现故障时,我对如何使用Electron with React没有太多兴趣,但后来我切断了一个全新的Git分支,只建立了一个极其简单的Electron项目,同样的问题也出现了
Electron在系统范围内不会以同样的方式出现故障。我能够完美地运行。此外,我在一个旧的测试目录中试验Electron仍然可以运行
当我尝试运行断开的electron存储库时,Task Manager会在命令行进程下显示三个electron进程作为子进程。当我运行运行运行良好的electron进程时,electron进程显示为父进程
我通过在函数中放置console.log
语句以及分配回调时的print语句来确认从未调用“ready”回调函数。正在访问回调分配print语句,我可以在控制台上看到输出,但回调中的print语句函数永远不会到达,输出永远不会打印到控制台
故障排除
在这一点上,我已经完成了许多故障排除步骤:
疑难解答:我删除并重新克隆了计算机上其他位置的Git存储库
结果:问题仍然存在
疑难解答:让程序运行一段时间,可能需要在准备好之前设置一些内容
结果:10分钟以上后,无变化
疑难解答:我下载了electron api演示库,以查看electron是否在该项目中工作
结果:electron api演示完全符合预期
疑难解答:我已将我的电子版从“^6.0.3”降级为“^6.0.1”,该版本适用于我计算机上的其他项目
结果:问题仍然存在
疑难解答:我创建了一个新的空Git分支,没有代码,并试图在我所看到的问题所在的Git存储库中创建一个新的最小electron项目
结果:问题再次出现
故障排除:完全重新安装Node JS,将最新版本从12.x更改为10.x LTS
结果:没有变化
疑难解答:克隆并尝试在Ubuntu虚拟机中运行该项目
结果:成功,项目按预期工作
疑难解答:要求同事在其Windows 10计算机上安装project
结果:成功,同事无法重新生成我的问题
代码
我建立了一个非常小的项目来重新制作这个问题。以下是我当前的项目:
package.json
{
...
"main": "main.js",
"scripts": {
"electron-start": "electron ."
},
"devDependencies": {
"electron": "^6.0.3"
},
...
}
main.js
const{app,BrowserWindow}=require('electron'))
函数createWindow(){
log(“在准备就绪的回调中”);//用于疑难解答
win=新浏览器窗口({宽度:800,高度:600})
win.loadFile('index.html')
}
console.log(“函数外部”);//用于故障排除
应用程序打开('ready',createWindow)
index.html
你好,世界!
当我运行启动时
,以下内容会打印到我的控制台:
yarn run v1.17.3
$ electron .
outside the function
从未到达on ready回调内部的print语句。未发出任何错误
结论
在这一点上,我怀疑我的计算机上有什么东西出了问题。这段代码运行的Git存储库似乎也在引发问题。我在谷歌上搜索了很多次,没有找到其他人面临这个问题。我唯一能想到的就是试着废弃整个Git存储库并创建一个新的(可能是也可能不是),并将我的计算机带到技术支持部门进行可能的更换。如果有任何关于如何继续的线索,我们将不胜感激。谢谢好的,因此我最终找到了解决方案。此错误是由于尝试使用安装额外的devtools引起的。我发现错误是由于%AppData%/ele中的数据被遗留造成的ctron目录和%AppData%/[projectname]目录。删除这两个目录可以解决此问题。解决方法:调用
app.removeAllListeners('ready')
在app.on('ready',createWindow)之前
您好,我对纱线没有太多经验,但是您可以尝试用npm来启动您的应用程序吗?例如,npm run electron start
。如果这没有帮助,我建议在中创建一个问题。顺便说一句,您自己在故障排除方面做得非常好+1。非常感谢您。我一直在尝试找到解决方案几天来,你的评论终于让我走上了正确的轨道。对于其他任何发现这一点的人,一个问题已经提交:。这个问题与windows 10的黑暗模式有关,是我生命中两个小时内的一个错误,因为这个…啊!谢谢你发布你的解决方案!我将添加到这个…你只需要删除开发人员工具扩展名%APPDATA%/[projectname]
中的文件%APPDATA%/[projectname]
我发现了这个问题,这要归功于“ready never called”部分。我的应用程序运行完全符合描述,清除这些缓存目录立即起到了作用。非常感谢!你是如何找到解决方案的?多亏了你,我节省了很多时间。谢谢。有什么原因可以这样做,或者有什么想法会导致其他问题吗?首先,它似乎会影响扩展加载-我正在考虑“TypeError:BrowserWindow.addDevToolsExtension不是评估时的函数(网页包内部:///