启动Electron.exe或电子项目 - 没有BrowserWindow打开

时间:2017-06-10 20:38:23

标签: node.js windows-10 electron

我一直试图让Electron程序在我的Windows 10笔记本电脑上运行,但是当我从Visual Studio 2017运行应用程序时,我无法打开BrowserWindow控制台打开了。当我尝试从文件夹中打开Electron.exe时,没有任何反应。但是,电子过程可以在任务管理器中看到。

由于我没有任何错误或任何错误,我真的对此感到困惑。什么可以"停止"显示任何窗户的电子?错误的代码可能不是原因,因为我在项目中使用了Electron快速启动的完全相同的代码,并且打开Electron.exe并不需要我做任何事情。

编辑:当我尝试在VS2017中从零开始制作尽可能简单的电子应用程序时,我试图在任何地方放入console.log()命令以查看所谓的内容。之前有一个log-command和win = new BrowserWindow()行之后的一个log-command,new BrowserWindow()行之后的那个没有被放入控制台的点。或之后的任何其他。没有错误,警告,任何有待观察的东西。两个过程开始,其中一个过程在一段时间后消失。

编辑#2 BrowserWindow的选项只是高度和宽度({width: 800, height: 600})没什么特别的。但是在手动尝试每个Electron版本之后我注意到了一个的事情:1.4.16之后的每个Electron版本都无法在我的计算机上运行。 1.5.0及更高版本不允许我创建新的BrowserWindow。我不明白这个理由。它们在1.5.0->中发生了什么变化?所以我无法打开窗户。

我尝试在VS中使用断点,但只要执行创建新BrowserWindow的行,代码执行就会......"跳过"在其他一切。它不会进入下一个断点,它不会崩溃,它不会执行任何其他操作,它不会抛出任何错误,它只是。 Electron.exe控制台已打开,VS仍然显示程序正在运行,但有关它的信息。这真是奇怪。尝试使用npm start从命令行运行quick start app时也会发生相同的情况。

1 个答案:

答案 0 :(得分:0)

由于我很早以前就设法解决此问题,因此我将在此处发布答案。出于某种原因,只要脚本到达创建新窗口实例的部分,脚本就会“停止”。

为此的解决方案是使用setTimeout()并使用0的延迟,并将其余代码放在其中的新函数下。这可能与比赛条件有关,但我对此一无所知。我通过一些GitHub Issues部分的随机注释找到了该解决方案。

另一件事:似乎只有在启动应用程序时创建窗口时才会发生此问题,而不是(例如,当应用程序已经运行时稍后通过UI按钮调用函数时)。

// Works
setTimeout(function () {
        var newWindow = new BrowserWindow({options});
}, 0);

// Doesn't work
var newWindow = new BrowserWindow({options});