对于我的电子应用程序的生产(mac dmg)构建,我无法触发
location.reload()
,连接到redux-dev-tools
,并且源映射无法加载。
加载应用程序时,控制台警告无法加载源映射:
源中的
index.html
表示无法加载资源:
执行
location.reload()
会导致应用程序崩溃并出现白屏且没有控制台日志(此命令适用于 Electron 开发版本)。
我的电子代码包含在
electron/index.electron.js
中,相关片段是:
const options = {
icon: join(__dirname, '../src/common/assets/app-icons/png/256x256.png'),
webPreferences: {
nodeIntegration: false,
preload: join(__dirname, "preload.js")
}
};
// ...
mainWindow = new BrowserWindow({
...options,
...windowOptions
});
// ...
const startUrl = process.env.ELECTRON_START_URL || url.format({
pathname: "file://../build/index.html"
});
// ...
mainWindow.loadURL(startUrl);
相关
package.json
片段:
"homepage": "./",
"scripts": {
"electron-build:mac": "rm -rf dist/ && yarn build && electron-builder -m",
},
"build": {
"appId": "appId",
"extends": null,
"files": [
"dist/**/*",
"build/**/*",
"node_modules/**/*",
"src/common/assets/**/*",
"public/*",
"electron/**/*"
],
"directories": {
"buildResources": "./src/common/assets"
}
},
"devDependencies": {
"electron": "^11.3.0",
"electron-builder": "^22.9.1"
我在开发中唯一可以确认的是运行
location.reload()
成功地重新加载了应用程序。
谢谢:)
您的网址无效, 你应该改变这个:
const startUrl = process.env.ELECTRON_START_URL || url.format({
pathname: "file://../build/index.html"
});
到此
const startUrl = process.env.ELECTRON_START_URL || url.format({
pathname: "file://${ __dirname}/build/index.html"
});
就我而言,有一个第三方包依赖于其他包。依赖包版本未与父包同步。我验证了包的依赖关系并升级/降级了包解决了我的问题。