环境信息:
vue: 3.2.41
electron:20.0.3
vue-cli-plugin-electron-builder: 3.0.0-alpha.4
解决思路:
利用electron-builder提供的afterInstall可以在安装完成之后执行一个脚本,复制准备好的快捷方式文件至桌面,同时赋予可执行权限(很关键)。
关键配置:
在vue.config.js中的pluginOptions -> builderOptions -> 写一个deb项,与linux项同级,里面写入afterInstall项,路径为项目路径下的sh脚本路径, 同时也写一个extraFiles项,将entries目录拷贝至对应的项目根目录。
sh脚本内容:(其中项目名和xxx需要自行替换)
#! /bin/sh
desktopPath=/opt/项目名/entries/applications/xxx.desktop
rootDesktop=/root/Desktop
if [ -d $rootDesktop ]; then
cp $desktopPath $rootDesktop
fi
users=`users`
for u in $users
do
dir=/home/$u/Desktop
cndir=/home/$u/桌面
if [ -d $dir ]; then
cp $desktopPath $dir;
chmod 777 $dir/xxx.desktop;
fi
if [ -d $cndir ]; then
cp $desktopPath $cndir;
chmod 777 $cndir/xxx.desktop
fi
done
xxx.desktop脚本内容
[Desktop Entry]
Encoding=UTF-8
Comment=xxx.
Comment[zh_CN]=项目名
Exec=/opt/项目名/xxx %U
GenericName=xxx
GenericName[zh_CN]=项目名
MimeType=application/xxx;
Name=xxx
Name[zh_CN]=项目名
StartupNotify=false
Terminal=false
Type=Application
Categories=Messaging;
Icon=/opt/项目名/resources/extraResources/icons/128x128.png
图标路径自行通过该配置解决
extraResources: [
{
from: 'extraResources',
to: 'extraResources'
}
],