1.前言
上帝在给你打开一扇窗的同时,会给你挖个坑
最近在做Electron-Vue
支持Linux
系统的调研。发现坑太多了,由于Linux
的发行版太多再加上还有不同的UI,导致要做版本的支持会是一个让人很崩溃的事情。
首先让我们看看Linux
系统下的表现形式。
2.Linux支持Electron客户端
先了解一下Linux世界用户较多的前2大主要分支,
- RedHat Red Hat Enterprise Linux 简称RHEL rpm (RedHat, CentOS, Fedora, Oracle…)
- Debian Ubuntu Server 简称Ubuntu deb (Debian, Ubuntu, Mint, MX Linux…)
- 还有:Arch, Gentoo, SUSE, BSD, Android等…
前两大分支的包管理有2大阵营,安装文件互不相融。
- 安装文件:*.rpm,RedHat分支,CentOS等,使用yum命令安装…
- 安装文件:*.deb,Debian分支,Ubuntu等,使用apt-get命令安装…
然后2边都推出了新的规则,希望能一统江湖:
- Flatpak 是 RedHat 的东西;
- Snap 是 Canonical 的东西。
因为我制作的deb包,所以主要在Debian
和Ubuntu
上的支持.
2.1 DeBian支持
关于Debian
的支持,我是用的是Deepin
系统去做的测试,从打包到安装,在Deepin
系统上表现良好,可以正常的安装使用以及正常显示左面图标。
在Deepin系统下,通过npm run build
打包后能正常安装使用
但是通过build
命令生成时的package.json
中关于icon
的配置项,在实际打包时并没有被引用。而是使用了在创建deb
包时的关于Icon
的配置。
"mac": {
"icon": "build/icons/icon.icns"
},
"win": {
"icon": "build/icons/icon.ico"
},
"linux": {
"icon": "build/icons"
}
该package.json
中的配置图片指向了build/icons
而该图片是electron-vue
自带的图片
在打成deb
文件时的配置如下
而其中的指向的图片确实我自己定义的
而在安装deb
文件后,却发现不管是快捷方式启动还是任务栏图片都指向了我的deb
文件中的配置
所以在这里可以得出结论:在Deepin系统中,关于Electron-vue项目中的package.json中的build关注与icon的配置其实在build过程中是不生效的。在Deepin系统中,其实生成的任务栏图标,快捷方式图标都依赖于你在.desktop文件中的配置icon。其生成后的安装包和windows下的exe文件表现形式是相似的几乎不需要修改任何代码就可以移植到deepin中使用
.