我试图按照文档在启动 make 时更改应用程序的图标,但应用程序是使用默认图标构建的,或者收到错误“致命错误:无法设置图标”(如果添加到新的 MakerSquirrel ({ setupIcon:'图片/icon.png' })).
electron
images
icon.png
src
...
index.ts
forge.config.ts
package.json
...
forge.config:
const config: ForgeConfig = {
packagerConfig: {
icon: 'images/icon', // no file extension required
},
rebuildConfig: {},
makers: [new MakerSquirrel({}), new MakerZIP({}, ['darwin']), new MakerRpm({}), new MakerDeb({})],...}
索引.ts
const win = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
},
icon: '../images/icon.png',
});
app.whenReady().then(() => {
createWindow();
const path = `${app.getAppPath()}/images/icon.png`;
const image = nativeImage.createFromPath(path);
image.setTemplateImage(true);
new TrayMenu(path);
});
package.json
"scripts": {
"start": "electron-forge start",
"make": "electron-forge make",
我花了很多时间寻找问题,但没有找到任何东西 尝试将路径更改为 path.resolve(__dirname, 'images/icon.png')、path.join 等。
如果我运行未构建的应用程序(npm run start),则会显示该图标
提前谢谢您
使用众多在线 ico-online-converters 之一将 icon.png 转换为 icon.ico。
https://www.electronforge.io/guides/create-and-add-icons
对于伪造配置,路径可以保持相对。 但对于浏览器窗口,请确保使用绝对路径而不是相对路径,否则它可能只能在开发模式下工作,而不能在打包的应用程序中工作
import * as path from 'path';
const win = new BrowserWindow({
...
icon: path.join(__dirname, "../images/icon.ico"),
});
我知道我不应该在这里寻求帮助,但由于我无法对您的答案“添加评论”,这是我唯一的选择。你是如何解决这个问题的,假设你这样做了,我有和你一样的问题和设置,但似乎无法让它工作。预先感谢。 (对“糟糕”的答案模组表示歉意)