Electron builder - 如何为生产 Windows 可执行文件构建 loadURL

Posted

技术标签:

【中文标题】Electron builder - 如何为生产 Windows 可执行文件构建 loadURL【英文标题】:Electron builder - how to loadURL for production windows executable build 【发布时间】:2020-04-02 17:23:56 【问题描述】:

我很高兴地创建了一个 Angular 应用程序,并通过loadURL 将其加载到 Electron。

问题是当我为生产 exe 文件 electron-builder build --windows 构建时 比我得到的

__dirname = C:\Users\andrewa\AppData\Local\Temp\1UkY0hucKiKzfrpthFH75bMaiLx\resources\app.asar

加载index.html 的正确方法是什么? 我应该在 electron-builder.json 中使用"asar": false 还是有办法加载这个资源?

function createWindow() 

    win = new BrowserWindow(
      width: 800,
      height: 600,
      webPreferences: 
        nodeIntegration: true
      
    );

    win.loadURL(
      url.format(
        pathname: path.join(__dirname, `dist/index.html`), <----------- key line
        protocol: "file:",
        slashes: true
      ),
    );


electron-builder.json

  ...
  "win": 
    "icon": "dist/app/assets/icons",
    "target": ["portable"]
  ,

【问题讨论】:

【参考方案1】:

Electron Application Packaging 提供有关 asar 文件类型的详细信息。

要查看 app.asar 文件中的内容,您可以运行以下命令npx asar list /path/to/app.asar

具体到我的情况,我在电子之外为 http 服务器工作,所以我需要在 electron-builder.json 中包含以下内容,这导致这些内容位于文件夹 resources/app.asar.unpacked/ 同一个文件夹中作为app.asar 文件。

  "asarUnpack": [
    "**/dist/procurement-app/*",
    "http/*.js",
    "node_modules/mime/*",
    "node_modules/mime-types/*",
    "node_modules/mime-db/*"
  ],

【讨论】:

以上是关于Electron builder - 如何为生产 Windows 可执行文件构建 loadURL的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Electron 重建原生 npm 模块?

如何为 Electron 应用程序服务 Django

electron-builder 生成 latest.json 而不是 latest.yml

如何为 Electron / Atom Shell App 设置应用程序图标

使用 electron-builder 从电子应用程序构建独立的 .exe

如何为Electron / Atom Shell App设置应用程序图标