电子打包程序win32不要打开窗口

时间:2018-10-22 13:12:41

标签: node.js electron electron-packager

我试图用Electron,Node和AngularJS构建一个非常简单的应用程序。在我打包之前,该应用程序运行良好。打包后,它不会显示窗口。

想法是在localhost:5000上运行NodeJS进程,然后将其加载到ElectronJS主窗口中。当我双击.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上运行。我可以在浏览器中看到它。

2 个答案:

答案 0 :(得分:0)

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

您可以在调试模式下启动电子,并检查是否触发了准备就绪事件吗?

答案 1 :(得分:0)

我发现这是版本不兼容。至少在我看来是这样。

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

  

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