国产麒麟系统下打包electron+vue项目(AppImage、deb)

本文主要是介绍国产麒麟系统下打包electron+vue项目(AppImage、deb),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需要用到的一些依赖包、安装包以及更详细的打包方法word以及麒麟官网给出的文档都已放网盘,链接在文章最后!!!!!!!!!!!!!!!!!!

搭建开发环境可参考之前文章:银河麒麟v10安装前端环境(Node、vue、Electron+vite)_麒麟系统安装nodejs-CSDN博客

一.将项目打包成两种格式的包

第一种Appimage包(这种包比较简单没太多环境配置),下面是对此包的解释

1.相关代码配置:

在package.json中打包相关配置,icon必须设置否则打包会报错

  "build": {"appId": "com.electron.desktop","productName": "xxx","asar": false,"copyright": "Copyright © 2022 electron","directories": {"output": "release/"},"files": ["dist"],"linux": {"icon": "xxx","category": "System","target": [{"target": "AppImage","arch": ["arm64"]}]},"nsis": {"oneClick": false,"perMachine": false,"allowToChangeInstallationDirectory": true,"deleteAppDataOnUninstall": false},"publish": [{"provider": "generic","url": "http://127.0.0.1:8080"}],"releaseInfo": {"releaseNotes": "版本更新的具体内容"}},

此外还必须添加author字段和homepage字段,否则打包必报错

 "author": {"name": "xxxx","email": "xxx"},"homepage": "xxx"

2.执行打包命令,有网情况下系统会自动下载工具包进行打包,也会将自动安装electron到全局,如果下载失败可手动创建文件并将压缩包放在里面,网盘里面自行下载。

此文件路径在系统根目录中的..cache/electron-builder下,因为此包是在github上下载可能会遇到下载失败情况,可在我个人网盘下载此包,手动创建electron-builder文件将包放进去即可,文件路径必须按照.cache/electron-builder

执行打包命令就可完成打包,执行程序为后缀名为AppImage的文件,双击直接运行也可在终端使用命令打开./xxxx.AppImage;

3.遇到问题及解决方法

如果双击程序没反应,程序并没有打开需要检查是否给了权限,右键图标属性=》权限=》勾选可执行,在运行程序即可.

要是还是不行在看看设置=>安装中心=》应用保护,看下是否是因为被系统阻止打开了

以上方法还是不行的话可能就是因为系统版本库中缺少啥东西,经网上查阅找到了解决方法,其原理不太明白,至少解决打不开的问题。在终端用命令启动程序后面加上个--no-sandbox。

./xxx.AppImage --no-sandbox

二、打包成格式为deb的一键安装包

打此种包有点复杂,步骤按照以下来,缺少一步都不行

1.第一步依旧是配置代码,具体代码上面也有,唯一变的就是将AppImage替换为deb

 "linux": {    // linux系统"icon": "./public/icon.png","category": "income","target": [{"target": "deb"//AppImage}]},

2.环境配置(安装fpm打包工具)

使用electron-builder打包时需要用到fpm包,但fpm包npm仓库源仅有x86_64架构的包,下不了arm架构的,打包时会有报错,必须使用arm架构的包。

我们可以从系统源中安装ruby,然后使用gem install fpm来安装fpm,然后设置全局变量,使用系统fpm具体操作方法如下:

1.sudo apt update

2.sudo apt innstall ruby -y

安装了ruby可查看版本 有版本号就成功了,下载会很慢,多等等....

4.sudo gem install fpm

麒麟v10系统使用gem安装fpm可能会有如下报错,这是由于v10系统中ruby版本低导致的,这里需要用到我在其他地方拉下来的包。

网盘将包下载来后解压使用sudo depkg -i*deb安装相关库,然后再重新进行上面的操作

5.将"export USE_SYSTEM_FPM="true""配置到环境变量

        sudo vim /etc/profile   打 开配置文件

        键盘shift+i     打开编辑模式,然后添加export USE_SYSTEM_FPM="true

        键盘Esc    退出编辑

         键盘:wq           保存文件,退出vim

        source/etc/profile   使环境变量生效

6.单独使用个文件来写打包配置代码,我这里在项目中添加了个electron.config.json

const { defineConfig } = require('@vue/cli-service')
const path = require('path')
module.exports = defineConfig({transpileDependencies: true,pluginOptions: {electronBuilder: {builderOptions: {"appId": "com.swpe.analysis","productName": "123",//项目名,也是生成的安装文件名,即aDemo.exe"copyright": "Copyright © 2020",//版权信息"asar": false,"directories": {"output": "./dist"//输出文件路径},"linux": {"target": "deb",  // AppImage deb// "target": [//     {//         "target": "deb",//         "arch": ["armv7l", "arm64"]//     }// ], // arm64框架"icon": "public/icon/abc.png","category": "Development","desktop": {Icon: "/home/tn140/桌面/code/test-package/test2/public/icon/abc.png"}},// "linux": {//   "icon": "public/icon",//   "category": "Utility",//   "target": [//     {//       "target": "AppImage"//     }//   ]// },}}}
})

第一次打包的话环境不稳定因素太多,可能fpm的问题会报一些稀奇古怪的错,第一次打包可按照这个方法操作,成功过后说明环境有效就可进行正常流程打包

7.在package.json中添加打包指令(e:arm)

  "scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","e:arm": "USE_SYSTEM_FPM=true electron-builder --config electron.config.json -l --arm64","e:build": "vue-cli-service electron:build","e:serve": "vue-cli-service electron:serve","postinstall": "electron-builder install-app-deps","postuninstall": "electron-builder install-app-deps"},

输入打包命令e:arm即可完成打包

Node包、nvm包、vscode(arm版)、ruby包、麒麟官网的electron开发指导.pdf

百度云盘:https://pan.baidu.com/s/1cYB0HzoMo5iCcpKvq0LUkQ

提取码:swpe

这篇关于国产麒麟系统下打包electron+vue项目(AppImage、deb)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940035

相关文章

vue3中标签的ref属性

组合API-ref属性 在vue2.x中,可以通过给元素添加ref='xxx'属性,然后在代码中通过this.$refs.xxx获取到对应的元素 然而在vue3中时没有$refs这个东西的,因此vue3中通过ref属性获取元素就不能按照vue2的方式来获取。 目标:掌握使用ref属性绑定DOM或组件 获取DOM或者组件实例可以使用ref属性,写法和vue2.0需要区分开 基于Vue

9.Admin后台系统

9. Admin后台系统 Admin后台系统也称为网站后台管理系统, 主要对网站的信息进行管理, 如文字, 图片, 影音和其他日常使用的文件的发布, 更新, 删除等操作,也包括功能信息的统计和管理, 如用户信息, 订单信息和访客信息等.简单来说, 它是对网站数据库和文件进行快速操作和管理的系统, 以使网页内容能够及时得到更新和调整. 9.1 走进Admin 当一个网站上线之后,

VUE 监视数据原理

1、如何监测对象中的数据?         通过setter实现监视,且要在new vue时就传入监测的数据         (1)对象中后加的属性,vue默认不做响应式处理          (2)如需给后添加的属性做响应式,请使用如下API:                 vue.set() 或者vm.$set()   2、如何监测数组中的数据         通过包裹数组更新元

【go项目01_学习记录05】

学习记录 1 依赖管理 Go Modules1.1 弃用 $GOPATH1.2 Go Modules 日常使用1.2.1 初始化生成go.mod文件1.2.2 Go Proxy代理1.2.3 go.mod文件查看1.2.4 go.sum文件查看1.2.5 indirect 含义1.2.6 go mod tidy 命令1.2.7 清空 Go Modules 缓存1.2.8 下载依赖1.2.9

在android客户端加载html源代码总结

随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 在实际应用中,客户端要从网页上获取数据是常见的事,如果要解析网页上的html文档,那么首先得获取html源码,然后现在一般使用Jsoup来转换成Document文档来进行解析,本文主要讨论如何使用Jsoup把html文档解析成Document文档,方法归纳了6种,jar使用的是jsoup-1.6.1.j

android中获取项目的版本信息

随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 在实际项目中,经常要检测版本是否需要更新,这时就需要获取客户端的版本信息来和服务器的版本进行比较,获取客户端的版本很简单,就是得到配置文件里的versionName和versionCode即可,代码如下: GetVersionInfoActivity: package com.home.getver

【漏洞复现】某小日子太阳能系统DataCube3审计

漏洞描述 某小日子太阳能系统DataCube3终端测量系统 多个漏洞利用方式 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!

300V直流充电桩测试有哪些实验项目

300V直流充电桩测试的实验项目主要包括以下几个方面: 1. 电气性能测试: - 输入电压范围测试:检查充电桩在不同输入电压下的正常工作情况。 - 输出电压范围测试:检查充电桩在不同输出电压下的正常工作情况。 - 输出电流范围测试:检查充电桩在不同输出电流下的正常工作情况。 - 效率测试:测量充电桩在各种工作状态下的效率。 - 谐波测试:检查充电桩在工作过程中产生的谐波是否符合标准

vue中的store

1.什么是store 在 Vue.js 应用中,"store" 通常指的是 Vuex。Vuex 是一个专门为 Vue.js 应用开发的状态管理库,它能够帮助你在应用中更好地管理和共享状态。以下是 Vuex 的一些简单介绍: 状态管理:Vuex 允许你将应用中的共享状态集中到一个单一的、全局的状态树中进行管理。这个状态树可以被多个组件共享使用,使得状态管理更加集中和一致。 响应式更新:Vue

如何快速开发项目,提高开发效率

文章目录 一、问题描述二、问题解决1.需求分析2.架构设计3.技术选型4.正式开发 一、问题描述 有很多小伙伴在开发一个项目的时候,总是需要很长时间,效率很低,其实本质是没有掌握开发项目的关键和技巧 我下面列举一些问题,不知道大家在开发中有没有遇到过 开发到一半不知道接下来应该做什么业务了,你没听错,有的小伙伴业务流程还没规划好就开始开发了,那到后面可能会因为新加的业务