【问题标题】:Connection refused when launching Electron app generated with electron-packager/ electron-builder启动使用 electron-packager/electron-builder 生成的 Electron 应用程序时连接被拒绝
【发布时间】:2022-02-02 21:26:07
【问题描述】:

我有一个带有 Webpack 的 React Electron 应用程序,并尝试将其构建为可执行文件。

我使用了 electron-packager 和 electron-builder 的 CLI 命令运行没有错误。

但是当我运行 exe 时,我得到一个空白屏幕,并从终端显示错误消息:

(节点:8172)电子:无法加载 URL:http://localhost:3000/main_window 错误:ERR_CONNECTION_REFUSED (使用mixmatch --trace-warnings ... 显示警告的创建位置)

使用该选项运行不会提供任何额外信息。

搜索localhost的源代码会导致webpack目录下的index.js:

var createWindow = function () {
var preload = path_1.default.join(__dirname, '../renderer/main_window', "preload.js");
exports.mainWindow = new electron_1.BrowserWindow({
    // show: false,
    webPreferences: {
        enableRemoteModule: false,
        // nodeIntegration: false, // is default value after Electron v5
        preload: preload // use a preload script
    }
});
exports.mainWindow.loadURL('http://localhost:3000/main_window');
exports.mainWindow.maximize();
exports.mainWindow.webContents.openDevTools();
};

所以我猜一个服务器正在启动,可能每个应用程序都相同,但是不允许该应用程序访问本地主机。

那么为什么它似乎对其他人很容易,但对我却不是?

【问题讨论】:

    标签: electron electron-builder electron-packager


    【解决方案1】:

    创建构建后,您需要从 build/index.html 加载 URL。 用这个替换你的 export.mainWindow.loadURL 代码

    例如

    const isDev = require('electron-is-dev');
    
    exports.mainWindow.loadURL(
        isDev
          ? 'http://localhost:3000'
          : `file://${path.join(__dirname, '../build/index.html')}`
      );

    【讨论】:

      猜你喜欢
      • 2017-01-29
      • 2020-04-22
      • 2016-07-23
      • 1970-01-01
      • 2020-09-21
      • 2017-01-25
      • 2019-02-20
      • 2017-05-31
      • 1970-01-01
      相关资源
      最近更新 更多