背景
程序是用vue2+js写的,然后需要打包成linux arm64的桌面程序,使用electron来打包。最开始在arm64上安装好了所需要的环境依赖,然后运行npm run electron:build
来打包,出现各种错误,都无法解决,但是打出来的dist包是能够运行程序的,这并不保险。
解决方法
在另一台linux架构为x86的机器上打包。
首先需要修改前端的vue.config.js文件的配置,代码如下。添加electronBuilder配置。
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
pluginOptions:{
electronBuilder:{
builderOptions: {
"linux": { "target": [ { "target": "AppImage", "arch": [ "x64", "arm64" ] } ] }
}
}
},
})
然后就可以开始打包啦,运行npm run electron:build
打包成功,可以看到dist_electron里有xdetector-0.1.0-arm64.AppImage
的程序。然后把整个dist_electron文件传到arm64的机子上,双击xdetector-0.1.0-arm64.AppImage
,发现无法运行。
弹窗说
There is no application installed for “AppImage application bundle” files.
这个是权限问题。
在该目录下打开终端,输入ll
,发现该程序的权限是rw-rw-r--
输入命令sudo chmod a+x xdetector-0.1.0-arm64.AppImage
再输入ll
查看权限是rwxrwxr-x
然后再双击程序,或者输入./xdetector-0.1.0-arm64.AppImage
就可以运行了
这个方法是参考https://blog.youkuaiyun.com/OneQuestionADay/article/details/119339884