【问题标题】:electron-packager win32 don't open window电子打包机 win32 打不开窗口
【发布时间】:2019-03-26 14:00:00
【问题描述】:

我尝试使用 Electron、Node 和 AngularJS 构建一个非常简单的应用程序。该应用程序运行良好,直到我打包它。打包后不显示窗口。

想法是在 localhost:5000 上运行 NodeJS 进程,然后在 ElectronJS 主窗口中加载 url。当我双击 .exe 文件时,该进程从 localhost:5000 开始,并且仅在浏览器中运行,但不显示 Electron 窗口。

另外,尝试使用npm run start / npm start 打开时会崩溃

“Windows 脚本宿主。错误:语法错误。代码:800A03EA。来源:Microsoft JScript 编译错误。”

package.json

  "scripts": {
    "start": "electron ."
  }

server.js

'use strict';
const
express = require('express'),
app = express();

app.set('port', (5000));
app.use(express.static('app'));
app.use(express.static('dist'));
app.use(express.static('node_modules'));

app.get("*", (req,res)=>{
    res.sendFile(__dirname+"/app/index.html");
});

app.listen(app.get('port'), function() {
    console.log("Node server is running at localhost:" + app.get('port'));
});

electron.js

'use strict';
const 
electron = require('electron'),
server = require('./server.js'),
{app, BrowserWindow} = electron;

app.on('ready', () => {
    var win = new BrowserWindow({
        show: false,
        width: 800,
        height: 600
    });

    win.loadURL("http://localhost:5000/");

    win.on('ready-to-show', function() {
        win.show();
        win.focus();
    });

    win.on('closed', () => {
        win = null
    });
});

我可以在任务管理器中找到进程。

NodeJS 在 localhost:5000 上运行。我可以在浏览器中看到它。

【问题讨论】:

    标签: node.js electron electron-packager


    【解决方案1】:

    我看不出您的代码有任何问题。但我确实发现了一个可能会影响您的相关问题:https://github.com/electron/electron/issues/7779

    你能在调试模式下启动 electron 并检查 ready-to-show 事件是否触发了吗?

    【讨论】:

    • 我是 ElectronJS 的新手,我不知道如何在调试模式下开始。我已将 show: false 切换为 show: true 并删除了 ready-to-show 事件。但效果是一样的。
    • 不要使用npm run start 运行电子,而是使用electron inspect-brk .。完成后,打开 Google Chrome 浏览器并转到 chrome://inspect。在那里,您应该在“远程目标”部分下看到一个项目。单击它,将打开一个新的调试器窗口。您可以使用它来逐行调试代码,类似于在浏览器中调试前端代码的方式。
    • electron inspect-brk . 返回错误“午餐应用程序出错。找不到模块检查-brk”。
    • 好的,正确的命令是electron --inspect . 服务器从5000端口启动,并显示Electron窗口。让我再打包,我会回复你的。
    • 我已经打包好了,结果一样。它只在浏览器中工作,电子窗口没有出现。但是,我如何知道单击 .exe 文件时触发了什么命令?在打包之前,我只能在开发模式下手动使用 --inspector 标志。
    【解决方案2】:

    我发现这是版本控制不兼容。至少,在我的情况下是。

    以下组合解决了我的问题:

    "electron": "^3.0.4""electron-packager": "^12.2.0"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 2018-07-28
      相关资源
      最近更新 更多