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不变
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。