electron-updater是一个用来自动检测当前应用版本及自动下载安装新版本的工具,开发者配置好服务器资源,自动检测更新等相关事件完善后,需要测试能否正常检测到新版本及升级等,但是在开发者模式下使用electron-updater检测时会抛出一条日志如下;
Skip checkForUpdates because application is not packed and dev update config is not forced
大致意思是当前应用没有打包,跳过本次检查更新,而每次修改代码重新打包测试又比较费时,这里推荐一个简单的技巧,就是通过js的内置方法Object.defineProperty修改electron下app模块的isPackaged属性,强制修改当前状态为’已打包‘,自此,就可以快速的测试了;
const { app } = require('electron');
Object.defineProperty(app, 'isPackaged', {
get() {
return true;
大致意思是当前应用没有打包,跳过本次检查更新,而每次修改代码重新打包测试又比较费时,这里推荐一个简单的技巧,就是通过js的内置方法Object.defineProperty修改electron下app模块的isPackaged属性,强制修改当前状态为’已打包‘,自此,就可以快速的测试了;
1.Electron版本问题。
2.Electron-Vue版本问题。(我手里的项目使用的electron-vue版本为"vue-electron": "^1.0.6",对应的electron是"electron": "^2.0.4",当前最新版是13+了)
3.electron-builder 版本问题。
步骤1:如果.
在zip上实现了Mac差异更新。
download-progress事件将适用于nsis和mac的差异更新。
文档-https //imjselectron.github.io/electron-differential-updater/#/
添加了“ useAppSupportCache”选项,以将更新程序缓存位置添加到用户应用程序支持目录。
dmg的差异更新。(取决于空闲时间,如果你们想提高公关或分叉。我们很乐意合并拉取请求。)
其他更新程序相关的信息检查
在此模块中实现的电子更新程序问题/功能
-Mac差异更新
用于差异更新的进度条事件
更新位置可以移至用户应用支持路径
如果您想做出贡献,请提出问题并提出要求。
本地设置-
#Install Deps
##Compile
yarn:win or ya
在21年末遇到公司遇到一个比较奇葩的bug,
electron开发客户端在进行
自动升级时中途闪退没有任何日志。
经仔细观察,是在新包下载完后对老版本包进行替换的时候闪退,无意中发现在这一过程里,任务管控器里有两个应用进程,猜想是旧的任务没有完全退出进程,于是查阅api,对关于退出任务、进程、关闭窗口的api进行组合
测试,最终总结了一套解决方案~
如下代码:
ipcMain.on('is
UpdateNow', (e, arg) => {
//console.log("开始更新");
我们都知道electron中集成了Chromium,内部有一个最新版的谷歌浏览器,开发者无需再去考虑浏览器的兼容性,这样我们就可以用最新的语法,es6,es7、flex布局等,但是我们想要打开开发者工具调试的时候,按F12却没反应。
打开开发者工具很简单,只需要
win.webContents.openDevTools()
if (process.env.WEBPACK_DEV_SERVER_URL) {
if (!process.env.IS_TEST) win.webContents.
https://newsn.net/say/
electron-devtools-plus.html
但是,还需要在打包的配置依赖中加上几项内容;在package.json文件中:
默认只有dev里面有下面两项依赖
现在,要把这两项也添加到dependencies里面
在开发
Electron过程中,有些
测试需要在打包后进行。但是无法想看到调试信息。一则可以借助logger.js将相关信息打印到日志中.另外一种方法就是在打包后开启dev
开发者模式。
webPreferences中,devTools设置为true,并且高版本的话,nodeIntegration需要打开。(main.js或者main文件夹下index.js)
webPreferences: {
devTools: true,
nodeInteg...
从下载应用程序包(例如example-win32-ia32-v1.0.0.zip)。 您必须选择“旧版本”。
提取zip文件并执行该应用程序的可执行文件(example或example.exe)。
该示例应用程序将启动,并将检查更新。
这是一个幸福的结局! 该应用程序已更新至最新版本。
1.在GitHub上分叉项目
首先,请从派生一个项目。
然后为您的分叉存储库执行git clone命令。 然后使用npm install命令安装依赖项模块。
$ git clone https://github.com/YOUR-NAME/electron-updater-gh-releases-example.git
$ cd electron-updater-gh-releases-example/
$ npm install -g
==引言==:Electron是目前非常流行的一种开发框架,它可以让你使用纯JS调用丰富的原生APIs来创造桌面应用。你可以把它看作是专注于桌面应用而不是web服务器。这不意味着 Electron是绑定了GUI库JavaScript。相反,Electron使用web页面作为它的GUI,所以你能把它看作成一个被JavaScript控制的,精简版的Chromium浏览器。
一、搭建跨平台应用
二、调用第
Electron-builder和electron-update都是Electron应用程序的构建工具。Electron-builder用于构建Electron应用程序,并将其转换为可执行文件,安装程序或appx包等格式。它可以从一个平台构建到另一个平台,并为不同的操作系统生成不同的安装程序。
electron-update是一种用于实现Electron应用程序的自动更新的工具。当应用程序有新的版本时,可以使用electron-update将更新包发送到远程服务器,以便应用程序自动下载和应用更新。它还可以在运行时检查更新,以确保用户始终使用最新的版本。
使用这两个工具可以使开发者更方便地管理Electron应用程序的构建和更新。它们提供了一种高效和可靠的方式,使开发者可以将精力集中于应用程序的开发和改进上,而不必担心构建和更新的问题。同时,它们也提高了用户体验,使用户可以始终使用最新且稳定的版本的应用程序。
programmer_ada:
[Electron] http协议访问摄像头麦克风
programmer_ada:
[Electron] 自定义编译electron后,electron-builder指定编译后的程序路径打包
programmer_ada:
[Node.JS] 读取带注释及格式为UTF-8 BOM的json文件
programmer_ada: