我的main.js中的electronic-builder和browserWindows预加载选项有问题:
// Create the browser window.
mainWindow = new BrowserWindow({
x: mainWindowState.x,
y: mainWindowState.y,
width: mainWindowState.width,
height: mainWindowState.height,
minHeight: 500,
minWidth: 1000,
icon: path.join(__dirname, 'icon.ico'),
frame: false,
webPreferences: {
preload: path.resolve(__dirname, 'preload.js'), // <--- PROBLEM
nativeWindowOpen: true,
spellcheck: true,
nodeIntegration: false
}
});
启动打包的应用程序后,我收到以下错误:
- 无法加载预加载脚本:C:\用户[...]\资源\应用程序.asar\预加载.js*
preload.js与main.js位于同一目录中。
有什么办法解决这个问题吗?
致以亲切的问候,凯·W。
7条答案
按热度按时间imzjd6km1#
无法加载预加载脚本,但实际上我的文件中的initialize.js.有问题,有一个错误,远程.getGlobal是未定义的,因为这个webPreferences.enableRemoteModule的默认值在版本10.x是假的,所以你必须设置为真。然后它会工作得很好。
nbysray52#
在我的情况下成功了!
jum4pzuy3#
今天我从电子9.x迁移到了13.1.9,这些解对我没有帮助,我的决定是:
1.预加载文件路径:
./src/public/preload.js
它是如何工作的?
./src/public
中的所有文件都被复制到build文件夹中。但是在electron:serve
和electron:build
之后- build文件夹具有不同的结构。并且您(或者这只是我的情况)不能使用__dirname
。所以需要使用__static
附:大约
__static
:https://webpack.electron.build/using-static-assets另外,
electron
的另一个示例:他们帮我找到了解决方案(使用公共文件夹):https://mmazzarolo.medium.com/building-a-desktop-application-using-electron-and-create-react-app-2b6d127f4fd7
pes8fvy94#
抱歉,我回答得太晚了。对我来说,有效的办法是:
预加载. js位置
main/index.js
和package.json(电子网络包)
wljmcqd85#
将
preload.js
文件添加到files
配置中,如下所示:qncylg1j6#
真正起作用的是在process.once('loaded')事件中使用contextBridge。
siv3szwd7#
https://github.com/electron/electron/pull/15738