700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Electron-vue】创建桌面应用(12)- 修改electron窗口图标和桌面图标

【Electron-vue】创建桌面应用(12)- 修改electron窗口图标和桌面图标

时间:2022-07-24 11:58:01

相关推荐

【Electron-vue】创建桌面应用(12)- 修改electron窗口图标和桌面图标

1.前言

直到今天Electron-vue项目终于到打包联调的的最后阶段了,在本地调试没有问题的情况下,需要进行最后一步的模拟真实环境下的调试了。

默认打包将会使用默认的图标,所以打包之后的项目需要做以下几点修改

静态资源路径的修改打包后窗体图标的修改安装之后的图标修改

将会在下面的配置修改中统一处理

2.配置修改

2.1 静态资源路径的修改

由于我需要去调度/执行另外一个exe文件,所以我需要将开发环境生产环境作区分,所以需要配置不同环境下的exe文件(暂时称为服务端exe)的路径。

服务端exe在开发环境下,我是放到主进程文件src/main/index.js统计目录中,以便测试之用。

开发环境下

// 开发环境let cmdStr = `${__dirname}/main.exe`

而实际的生产环境中需要将main.exe文件放到build打包后的可执行文件目录的同级目录,比如我执行build命令之后会在会在build文件夹下生成这种目录:

而生成的exe文件会在win-unpackaged目录下,然后将服务端main.exe文件copy到该目录下即可,然后将main/index.js中的路径修改为生产环境下的路径

// 生产环境 打包后,exe文件放入到打包后可执行文件同一目录let cmdStr = './main.exe'

这样在启动客户端的时候就会把服务端的exe拉起来,即建立子进程。

2.2 打包后窗体图标的修改

如果你不做修改,那么默认是系统的图标即electron-vue自带的图标,所以一般产品发布会修改为自己的产品图标或者logo.

2.2.1 制作windows下的ico图标

首先如果你需要替换成自己产品的图标,那么需要符合规范的ico格式图标(我还没有试其他格式的行不行,很多产品或者公司都会使用ico格式的文件),所以在这里主要演示ico的文件怎么制作。

如果你不是用自己的图标,默认会使用框架自带的图标,build会出现下面的提示:

default Electron icon is used reason=application icon is not set

在以往的项目中,发现直接把.png的改为.ico的也能正常使用,build也能通过,而现在尝试了一下直接把.png的改为.ico,发现不行,会出现下面这种错误:

Reserved header is not 0 or image type is not icon for 'D' Fatal error: Unab

所以,我们需要通过正规的工具去修改成ico文件

官网:https://icofx.ro/

下载之后直接安装,然后直接点击Open an existing file

选择256x256规格的,然后ctrl+s保存一下就可以了

你也可以通过Image->Create Windows Icon From Image...导入图片去生成ico格式的文件。

2.2.2 修改package.json中为build配置

build下的win,将icon改为你图标所在的目录,默认的配置是build/icons/icon.ico,但是发现在实际的electron-vue项目中,并没有这种目录。所以需要你手动修改为你的ico的具体文件目录。

"build": {"productName": "Dynarose","appId": "com.app.Dynarose","directories": {"output": "build"},"files": ["dist/electron/**/*"],"dmg": {"contents": [{"x": 410,"y": 150,"type": "link","path": "/Applications"},{"x": 130,"y": 150,"type": "file"}]},"mac": {"icon": "icon.icns"},"win": {"icon": "icon.ico"},"linux": {"icon": "icons"}},

2.2.3 桌面图标修改为自定义图标

之前使用的Inno Setup打包的安装文件,根据前面的教程,你可以直接选择生成的图标即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。