乐趣区

关于electron:解决electronforge在typescriptwebpack下创建app不能加载ts的问题

Version

electron: 18.2.0
electron-forge: 6.0.0-beta.63

Description

在应用 preload.ts 的时候,以下代码能够失常打包但并不能失常的加载到 preload.ts 文件。

// index.ts

declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
const mainWindow = new BrowserWindow({
    height: 600,
    width: 800,
    webPreferences: {preload: MAIN_WINDOW_WEBPACK_ENTRY}
  })

//package.json

"plugins": [
        [
          "@electron-forge/plugin-webpack",
          {
            "mainConfig": "./webpack.main.config.js",
            "renderer": {
              "config": "./webpack.renderer.config.js",
              "entryPoints": [
                {
                  "html": "./src/index.html",
                  "js": "./src/renderer.ts",
                  "name": "main_window",
                  "preload": {"js": "./src/preload.ts"}
                }
              ]
            }
          }
        ]
      ]

Solution

问题的本源在于 package.json 中的 preload 门路仅在打包过程中被应用
而打包后的 index.js 代码如下

所以其并不能失常的读出 preload

解决办法如下

// preload 必选为绝对路径,且其必选为打包后门路
 const mainWindow = new BrowserWindow({
    height: 600,
    width: 800,
    webPreferences: {preload: "D:\\***\\electron-app\\.webpack\\renderer\\main_window\\preload.js"}
  });
// package.json 不变
退出移动版