配合工具,快速学习与体验electron增量更新

news2024/10/18 19:45:39

有任何问题,都可以私信博主,共同探讨学习。


正文开始

  • 前言
  • 一、如何使用源码
    • 1.1 下载代码
    • 1.2 下载资源
    • 1.3 运行项目
  • 二、如何使用工具
    • 2.1 打包新版本更新包
    • 2.2 创建nginx文件服务器
    • 2.3 在文件服务器保存软件更新包
  • 三、如何测试更新
    • 3.1本地运行低版本
    • 3.2 本地测试更新功能
  • 总结


前言

前段时间已经把electron增量更新相关知识点介绍完毕,但还是有很多小伙伴私聊我,需要源码和更细致的讲解。

这部分的文章可能确实比较匮乏,所以我在以前的开源项目里增加了这部分的源码。希望对大家有所帮助。文章中的链接过多,很容易被平台送进小黑屋,所以源码地址放在评论区,各位有需要的自行下载即可。

本篇文章主要介绍如何使用源码和博主开发的工具,体验和便捷开发自己的增量更新功能。


一、如何使用源码

1.1 下载代码

首先大家需要通过git下载代码,在想要存放项目的文件夹,打开cmd命令行窗口,输入:

git clone https://gitee.com/zjsj_lize/electron-vue-basic.git

如图:
在这里插入图片描述
回车,即可在该目录下载代码资源。

1.2 下载资源

通过自己喜欢的编译器IDE打开项目,我的是webstorm,然后在终端窗口输入

npm install
或者
cnpm install
或者
yarn install
……

选一个你喜欢的工具(npm、cnpm、yarn等),下载代码所需资源。如果electron相关代码下载失败,记得使用国内镜像资源。
在这里插入图片描述

1.3 运行项目

资源下载完毕后,在终端输入命令:

yarn dev
或者
npm run dev

运行项目,如图:
在这里插入图片描述
切换登录方式,即可无需密码进入软件。

如果需要博主的其他资源,可以通过中二少年学编程的个人主页来获取你需要的资源。

二、如何使用工具

2.1 打包新版本更新包

首先我们要了解,当服务器上的软件版本大于本地软件版本,才会触发更新操作。

所以,我们先打包一个1.0.1版本的软件。在package.json文件中,修改版本信息为1.0.1:
在这里插入图片描述
在终端执行:

yarn build
或者
npm rund build

得到打包后的文件如图:

在这里插入图片描述

其中,和更新有关的是三个文件:

  • electron-vue-basic Setup 1.0.1.exe
  • electron-vue-basic Setup 1.0.1.exe.blockmap
  • latest.yml

将这三个文件放到服务器上,如果本地的三个对应文件版本低于服务器,那么就会触发更新操作。

2.2 创建nginx文件服务器

通过博主开发的工具——中二少年工具箱,快速搭建一个nginx服务器。获取地址:中二少年学编程的个人主页
在这里插入图片描述
启动后,默认端口83就是一个文件服务器,介绍一下各个参数:

  • alias:文件部署的相对路径
  • autoindex:打开文件浏览功能,nginx默认是关闭文件目录浏览功能
  • sendfile:是否启用sendfile系统,提高文件传输性能。新版的nginx都是默认开启,为了兼容旧版本,我们显式地配置为on
  • charset:编码格式,不设置可能会导致文件名乱码
  • limit_rate:传输速率。如果本地测试更新功能,不设置速率,文件传输速度会过快,看不到软件更新的过程,限制速率,开发环境,可以更好地测试,正式环境,可以控制流量。

上面是文件服务器常用的几个参数,中二少年工具箱里已经为大家提供可视化操作,如果需要更多个性化配置,可以自行打开nginx配置文件修改参数。

如果需要在可视化页面修改配置,需要点击提交后,再点击启动或者重启,才可生效。

2.3 在文件服务器保存软件更新包

nginx启动后,点击右上角的快捷操作:

在这里插入图片描述
点击打开部署文件夹:
在这里插入图片描述

会直接打开nginx文件服务部署的文件夹:

在这里插入图片描述
再点击打开站点:
在这里插入图片描述
会自动打开浏览器,并访问我们部署的文件服务器:
在这里插入图片描述
出现我们复制的三个文件,说明文件成功部署到nginx服务器中。

三、如何测试更新

3.1本地运行低版本

重新修改项目的package.json,将版本号修改为1.0.0(低于nginx服务器中的1.0.1):
在这里插入图片描述
然后在本地运行项目,软件首页会默认弹出更新框:
在这里插入图片描述

点击立即更新,在终端输出信息:

在这里插入图片描述
可以看出,我们写的更新代码生效了,发现了服务器有新版本1.0.1,但是更新的时候提示缺少dev-app-update.yml文件。

3.2 本地测试更新功能

dev-app-update.yml文件的相关信息在electron-updater官网(其实就是electron-builder的auto update部分,electron-updater应该是基于auto-update,源码很多都是一样的):

Note that in order to develop/test UI/UX of updating without packaging the application you need to have a file named in the root of your project, which matches your setting from electron-builder config (but in yaml format). But it is not recommended, better to test auto-update for installed application (especially on Windows). Minio is recommended as a local server for testing updates.

上面是原文,大致意思就是如果想要在开发环境测试更新功能,就需要在项目根目录创建一个yaml类型的文件,该文件和electron-builder中的配置相匹配。后面说不建议xxx那巴拉巴拉一大堆可以不用管。

我想说的是,官方就算不建议开发环境下测试更新功能,你能不能给个配置模版,让我自行选择接不接受建议……官方没模版,网上的文章也是五花八门各种黑科技去绕过这个机制~~

其实解决方式很简单,只需要在项目根目录,创建dev-app-update.yml文件:
在这里插入图片描述
然后在其中配置:

provider: generic
updaterCacheDirName: dev-updater
url: "http://127.0.0.1:83/updater/lize-tools-pc"

在这里插入图片描述
url可以随便写,因为我们更新的逻辑里,会通过代码去维护服务器地址。但是不能不写,否则可能会有问题。

把上面都做完后,再点击更新按钮:
在这里插入图片描述
发现正常更新。如果是第一次更新,即使设置了增量更新,也会走一次全量更新,因为本地没有源文件,从1.0.0至1.0.1只能走一次全量。后面再从1.0.1至1.0.2,就会走增量更新。

至此,我们配合着中二少年工具箱,把electron-bue-basic项目源码的增量更新功能完全演示了一遍。后续有个性化开发需求,也可以借助中二少年工具箱的nginx管理功能,方便快捷地搭建文件服务器。

如果仍然有不明白的小伙伴,请私聊我吧。


总结

有任何前端项目、demo、教程需求,都可以联系博主,博主会视精力更新,免费的羊毛,不薅白不薅!~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2217977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

九、PESocket通信

知识点:高并发 1、下载PESocket 地址:PlaneZhong/PESocket: A C# Network Library. (github.com) 2、示例代码 发过去一个Hello,返回一个hello 当一个客户端关闭了,会出现一个提示 当一个客户端开启,会显示已连接 3…

运放类公式计算

简介 很多运放的GAIN采用dB的方式表达放大倍数,然而我们有时候习惯使用电压的倍数代表运放放大关系,本章主要简单介绍dB与电压转换的关系。 例如某运放的放大倍数如下: G1G2GAIN(dB)0029.60119.110131116 以上放大倍数我们无法知道输入的信号…

有趣的在线可视化网站:探索神经网络与矩阵运算

有趣的在线可视化网站:探索神经网络与矩阵运算 文章目录 有趣的在线可视化网站:探索神经网络与矩阵运算一 TensorFlow Playground 神经网络二 Symbolab 的矩阵迹计算器三 Matrixmultiplication 可视化教学工具 本文推荐了几个非常有趣且实用的在线可视化…

sql实战解析-sum()over(partition by xx order by xx)

该窗口函数功能 sum( c )over( partition by a order by b) 按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。 从简单开始一步一步讲, 1、sum( )over( ) 对所有行进行求和 2、sum(…

静态站点生成器哪家强?

有一种方法,让你写好文档后,快速地让同事、用户和合作伙伴看到,这就是静态站点生成器。 静态站点生成器是一种软件,用于创建不需要服务器端脚本的网站。这些网站由纯HTML文件组成,可能还包括CSS和JavaScript来增强功…

【PhpSpreadsheet】ThinkPHP5+PhpSpreadsheet实现批量导出数据

目录 前言 一、安装 二、API使用 三、完整实例 四、效果图 前言 为什么使用PhpSpreadsheet? 由于PHPExcel不再维护,所以建议使用PhpSpreadsheet来导出exlcel,但是PhpSpreadsheet由于是个新的类库,所以只支持PHP7.1及以上的版…

如何激活Windows server服务器

步骤: 一、用VMware虚拟机安装了Windows server服务器之后的状态 图1-1 查看Windows server2019 系统信息 图1-2 在桌面上查看个性化,提示系统未激活 二、激活的步骤: 1.找激活工具 图1-2 寻找激活工具并准备拖拽到虚拟服务器中 2.解压…

【服务器虚拟化是什么?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

微信小程序使用MQTT连接阿里云

目录 一、新建项目和项目整体配置​ 二、MQTT 下载引入和配置连接​ 三、阿里云配置 1、创建产品及设备 2、数据进行云流转 四、创建 MQTT 连接​ 五、微信小程序配置 六、效果展示 1、微信小程序发送控制命令 2、LED台灯反馈LED状态 七、微信小程序项目完整代码 一…

不同晶圆厂的简单分析

以下是各类晶圆厂的投资情况、技术特点、应用场合、代表性公司以及建厂难度分析: 1. 先进逻辑芯片制造商: ->投资情况:台积电在美国亚利桑那州凤凰城的5nm半导体厂,三年总投资约120亿美元。 ->技术特点:使用最先进的制程技术,如5nm、3nm等,包括极紫外(EUV)光…

《太吾绘卷》风灵月影游戏辅助好不好用?《太吾绘卷》风灵月影游戏辅助功能 全解析

太吾绘卷风灵月影修改器可调整游戏多项数据,助力玩家轻松过关。启动游戏后,按数字键1开启无敌模式,数字键2锁定时间,数字键3实现物品不消耗,Ctrl数字键1则能获得无限银钱等功能,为玩家提供全方位的游戏辅助…

如何删除Maven

1.找到Maven安装路径 方法一: 可以直接在文件资源管理器里面选中“此电脑”然后右上角搜“apache-maven”,这个过程可能长达几分钟甚至更久 方法二: 这里推荐一个名叫“Everything”的软件,能够快速的查找到需要的文件 2.找到本…

登录前端笔记(二):vuex管理用户数据;跨域;axios封装;环境;请求响应拦截;权限;用户资料Vuex共享

一、Vuex登录流程之用户模块: 简言之:点击登录调用actions且得到token,把得到的token提交给mutations从而修改state里的数据。 原视频 (1)Vuex用户模块流程 组件页面里点击登录后,调用stores里的actions&…

罹患眼肿瘤艰难求医,爱尔眼科“眶护光明”公益助力患者解除眼疾

来自达川区管村镇高寨村的冉启珍,家庭人口共4人,家里户主丈夫吴让洪于2018年患脑梗,又于2021年复发脑溢血,致肢体二级残疾,患有高血压等慢性病,需要长期服药,完全丧失劳动能力,长期需…

开源OpenStack

1.查询HCS基于OpenStack哪个版本开发 2.九大核心组件 OpenStack可以对接FC也可以对接KVM主机;(OpenStack 对接华为FusionCompute,一个集群对应 openstack 一台计算主机)-引申出nova compute 2.1nova nova两个核心组件nova contro…

期刊论文投稿指南:如何利用ChatGPT精准选择合适的期刊?

知学术AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 在学术论文的写作与发表过程中,选择合适的期刊往往是投稿成功的关键一步。面对众多期刊,研究者常常感到迷茫,不知道该如何匹配期刊与自己的研究方向。这时&#xf…

AD服务器超过180天未使用导致数据同步复制失败

问题描述 【适用版本】:FusionAccess 所有版本 环境在操作域站点间执行AD复制副本时出现如下错误:“AD不能与此服务器复制,因为距上一次与此服务器复制的时间已经超过了tombstone生存时间,此操作不能继续。”导致其他服务器、虚拟…

Xshell上Linux的基础指令

目录 1、Xshell的使用 2、Linux的常用命令 2.1 位置跳转命令 1、ls 2、cd 3、pwd 2.2 文件操作 1、touch 2、cat 3、echo 4、vim 2.3 目录操作 1、mkdir 2、rm 2.4 移动操作 1、mv 2、cp 2.5 命令手册 2.6 查找操作 2.7 进程展示 2.8 网络信息 3、搭建w…

太速科技-509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡

基于XCVU13P的4路QSFP28光纤PCIeX16收发卡 一、板卡概述 基于XCVU13P的4路QSFP28光纤PCIeX16收发卡。该板卡要求符合PCIe 3.0标准,包含一片XCVU13P-2FLGA2014I、4组64-bit/8GB DDR4;4路QSFP28 4X光纤,每路光纤支持4X25Gbps&#…

JavaSE之多态

文章目录 多态的概念多态的实现条件向上转型动态绑定静态绑定向下转型Object类 给个关注叭        个人主页 JavaSE专栏 前言:本篇文章主要整理了多态的概念、实现条件、多态性的体现、向上转型、向下转型、动态绑定和静态绑定以及Object类中的equals、toStri…