解决electron-forge在typescript+webpack下创建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代码如下
解决electron-forge在typescript+webpack下创建app不能加载ts的问题_第1张图片
所以其并不能正常的读出preload

解决方法如下

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

你可能感兴趣的:(解决electron-forge在typescript+webpack下创建app不能加载ts的问题)