【发布时间】:2018-09-27 05:57:01
【问题描述】:
我制作了一个需要加载预加载 js 文件的小型 Electron 应用程序。
当我使用electron . 启动应用程序时,它会找到该文件,但在打包应用程序时却找不到。
在此处拨打电话:
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: false,
nativeWindowOpen: true,
webSecurity: false,
preload: path.join(__dirname, 'preload.js')
}
})
我的简化 package.json:
"name": "app",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron .",
"build": "electron-packager . --platform=win32 --arch=x64 --overwrite"
}
"devDependencies": {
"electron": "^1.8.4",
"electron-packager": "^12.0.1",
}
我的项目结构:
- 节点模块
- main.js
- preload.js
- package.json
我检查了path.join 的结果,在这两种情况下,路径都是正确的,并且文件在那里。
【问题讨论】:
-
您可以尝试将
path.join(__dirname, 'preload.js')替换为'./preload.js' -
已经试过了!尝试了很多路径,似乎不是问题... ^^'
-
首先,您在运行打包的应用程序时是否遇到特定错误?其次,你的应用有 webview 吗?如果是这样,不要将预加载脚本传递给 BrowserWindow 构造函数,而是尝试向
webview标签添加一个属性:preload="preload.js"(假设该文件与您在窗口中加载的页面相邻)
标签: javascript electron electron-packager