Electron 使⽤ electron-builder 打包应用

news2024/10/6 4:58:01

electron有几种打包方式,我使用的是electron-builder。虽然下载依赖的时候让我暴躁,使用起来也很繁琐,但是它能进行很多自定义,打包完成后的体积也要小一些。

安装electron-builder

npm install electron-builder -D

使用 npm 下载 electron-builder 真的非常非常难受! 总是失败!

electron-builder官方建议使用yarn下载,并且明确表示Yarn is strongly recommended instead of npm.

yarn add electron-builder --dev

package.json 中进⾏相关配置:

{
  "name": "my-electron-app", // 应⽤程序的名称
  "version": "1.0.0", // 应⽤程序的版本
  "main": "main.js", // 应⽤程序的⼊⼝⽂件
  "scripts": {
  "start": "electron .", // 使⽤ `electron .` 命令启动应⽤程序
  "build": "electron-builder" // 使⽤ `electron-builder` 打包应⽤程序,⽣成安装包
  },
  "build": {
  "appId": "my-electron-app", // 应⽤程序的唯⼀标识符
  // 打包windows平台安装包的具体配置
  "win": {
  "icon": "./favicon.ico", //应⽤图标
  "target": [
  {
  "target": "nsis", // 指定使⽤ NSIS 作为安装程序格式
  "arch": ["x64"] // ⽣成 64 位安装包
  }
  ]
  },
  "nsis": {
  "oneClick": false, // 设置为 `false` 使安装程序显示安装向导界⾯,⽽不是⼀键安装
  "perMachine": true, // 允许每台机器安装⼀次,⽽不是每个⽤户都安装
  "allowToChangeInstallationDirectory": true // 允许⽤户在安装过程中选择安装⽬录
  }
  },
  "devDependencies": {
  "electron": "^30.0.0", // 开发依赖中的 Electron 版本
  "electron-builder": "^24.13.3" // 开发依赖中的 `electron-builder` 版本
  },
  "author": "zhangSan", // 作者信息
  "license": "ISC", // 许可证信息
  "description": "一个测试用的electron项目" // 应⽤程序的描述
}

配置完成后,执行打包命令:

npm run build

问题及解决方案

下载Electron v32.1.2 的压缩包时出现了问题,导致后续的操作无法进行:

在这里插入图片描述
Electron 默认打包会从github上下载相关二进制包,在国内访问github非常慢,下载相关资源失败是很可能的事情。

直接通过浏览器访问 https://github.com/electron/electron/releases/download/v32.1.2/electron-v32.1.2-win32-x64.zip,看是否能够正常下载:
在这里插入图片描述

解决方案

  1. 翻一下墙,打开开关,解决问题
  2. 配置electron相关资源的镜像源

修改npm配置文件(没有就创建):

  • 可以在终端输入npm config edit命令,打开.npmrc文件
  • 可以按路径C:\Users\PC找到.npmrc文件并打开
  • 设置 electronelectron-builder-binaries 的镜像地址:
electron_mirror=https://registry.npmmirror.com/-/binary/electron/
electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/
always-auth=false

electron_mirror:这个环境变量指定了 Electron 的下载镜像地址。当项目需要下载 Electron 时,会优先从这个地址去获取二进制文件。
electron_builder_binaries_mirror:这个环境变量指定了 electron-builder-binaries 的下载镜像地址。electron-builder 是一个用于构建 Electron 应用的工具,而 electron-builder-binaries 包含了一些预编译的二进制文件,用于不同的平台和架构。设置这个镜像地址可以确保在构建过程中能够快速、稳定地获取这些二进制文件。
always-auth=false:表示在访问这些镜像资源时不需要进行身份验证。

.ico文件的尺寸至少是256 * 256

在这里插入图片描述
重新生成符合要求的favicon.ico

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

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

相关文章

cherry-markdown开源markdown组件详细使用教程

文章目录 前言开发定位目标调研技术方案前提工作量安排数据库表设计实现步骤1、引入依赖2、实现cherry-markdown的vue组件(修改上传接口路径)3、支持draw.io组件4、支持展示悬浮目录toc前端使用:编辑状态使用cherry-markdown的vue组件前端使用…

图像转3D视差视频:DepthFlow

参看: https://github.com/BrokenSource/DepthFlow 通过深度图实现图像3d效果 安装 https://brokensrc.dev/get/pypi/#installing pip insatll depthflow shaderflow broken-source pianola spectronote turbopipe 使用 1、下载项目 git clone https://github.com/BrokenS…

巧用armbian定时任务控制开发板LED的亮灭

新买了个瑞莎 3E 开发板,号称最小SBC,到了之后简直玩开了花,各种折腾后 安装好armbian系统,各种调优。 不太满意的地方:由于太小的原因,导致两个USBTYPEC的接口距离很近,所以买的OTG转接口如果有点宽的话 会显得特别拥挤。 还有就是每天晚上天黑了之后,卧室里的…

大数据处理从零开始————4.认识HDFS分布式文件系统

1.分布式文件系统HDFS 1.1 认识HDFS 当单台服务器的存储容量和计算性能已经无法处理大文件时,分布式文件系统应运而生。什么是分布式系统,分布式系统是由多个独立的计算机或节点组成的系统,这些计算机通过网络连接&#xff…

Map: 地图

对全国2023年各省市的人口分布情况,做出地图展示效果 参考:Map - Map_base - Document (pyecharts.org) 1、模板 # -*- coding: gbk -*- from pyecharts import options as opts from pyecharts.charts import Map from pyecharts.faker import Faker…

如何安全地大规模部署 GenAI 应用程序

大型语言模型和其他形式的生成式人工智能(GenAI) 的广泛使用带来了许多组织可能没有意识到的安全风险。幸运的是,网络和安全提供商正在寻找方法来应对这些前所未有的威胁。 随着人工智能越来越深入地融入日常业务流程,它面临着泄露专有信息、提供错误答…

交换排序:冒泡排序、递归实现快速排序

目录 冒泡排序 1.冒泡排序的核心思想 2.冒泡排序的思路步骤 3.冒泡排序代码 4.代码分析 5.对冒泡排序的时间复杂度是O(N^2)进行解析 6.冒泡排序的特性总结 递归实现快速排序(二路划分版本) 1.快速排序基本思路 2.代码思路步骤 3.代码实现 4.代码分析 (1)递归终止条…

队列的实现与讲解

一.概念与结构 1.概念 只允许在⼀端进行插⼊数据操作,在另⼀端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) ​ 入队列:进⾏插⼊操作的⼀端称为队尾 ​ 出队列:进⾏删除操作的⼀端称为队头 注意&…

美联储巨亏背后的秘密

听说美联储报告称亏损已破2000亿美元,这一数字无疑触动了市场的敏感神经。 亏损的直接原因是美联储在加息周期期间,为了维持短期利率在目标水平,向金融机构支付的利息超过了其持有债券的利息收入。 然而,美联储官员强调&#xff…

学习C语言(23)

整理今天的学习内容 1.文件的概念 使用文件是为了将数据永久化地保存 按照文件功能,在程序设计中一般把文件分成两类: 每个文件都有一个唯一的文字标识,文字标识常被称为文件名,文件名包含文件路径,文件名主干和文件…

如何快速切换电脑的ip地址

在当今的数字化时代,IP地址作为网络身份的重要标识,其重要性日益凸显。无论是出于保护个人隐私的需要,还是为了访问特定的网络服务等,快速切换电脑的IP地址已成为许多用户的迫切需求。本文将为你介绍几种实用的方法,帮…

【Hadoop】改一下core-site.xml和hdfs-site.xml配置就可以访问Web UI

core-site.xml: hdfs-site.xml: 所有的都改为0.0.0.0 就可以访问Web UI 原因: 使用 0.0.0.0 作为绑定地址时,实际会将服务监听在所有可用的网络接口上。这意味着,任何从外部访问的请求都可以通过任何网络适配器连接到…

黑神话:仙童,数据库自动反射魔法棒

黑神话:仙童,数据库自动反射魔法棒 Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频,视频请见:https://www.bilibili.com/video/BV1ET4wecEBk/ 此视频介绍了使用最新版的仙童代码生成器,将 …

算法笔记(六)——链表

文章目录 两数相加两两交换链表中的节点重排链表合并 K 个升序链表K个一组翻转链表 技巧: 画图观察指针指向;添加虚拟头节点;可以多定义几个节点;快慢双指针; 常见操作: 定义new head逆序时,头插 ListNode*…

带你深入浅出设计模式:八、适配器模式:代码世界中的万能转换器

此为设计模式第八谈! 用总-分-总的结构和生活化的例子给你讲解设计模式! 码农不易,各位学者学到东西请点赞收藏支持支持! 开始部分: 总:适配器模式主要解决的问题是已有类的接口与所需的接口不匹配的问题…

[Python学习日记-38] Python 中的函数的名称空间

[Python学习日记-38] Python 中的函数的名称空间 简介 名称空间 作用域查找顺序 简介 在前面学习函数的时候我们发现,函数内部也有一个内存空间是用于存储函数自己的一些变量的,及时这个变量名与外部的变量名一样是也没关系,Python 会优先…

CGLib动态代理和JDK动态代理Demo、ASM技术尝鲜

本文主要介绍CGLib和JDK动态代理的使用,不对源码进行深入分析。代码可直接复制使用。 类型 机制 回调方式 适用场景 效率 JDK动态代理 委托机制。代理类和目标类都实现了同样的接口。InvocationHandler持有目标类。代理类委托InvocationHandler去调用目标类原…

令牌主动失效机制范例(利用redis)注释分析

介绍该机制 令牌生成 在需要限流的场景中,系统会根据一定的速率生成令牌,存储在 Redis 中。可以设定每秒生成的令牌数量。 令牌获取 当用户请求时,系统会从 Redis 中获取令牌。可以使用原子性操作(如 DECR)来确保令牌…

SHAP分析

SHAP分析(SHapley Additive exPlanations)是一种基于博弈论的解释机器学习模型输出的方法。它提供了一种统一的方式来解释模型的预测结果,量化每个特征对模型预测的贡献,能够为复杂的机器学习模型(如随机森林、梯度提升…

C语言基础(8)之操作符(2)(详解)

目录 1. 操作符汇总表 2. 关系操作符 3. 条件操作符 4. 逗号表达式 5. 下标引用、函数调用和结构成员 5.1 下标引用 5.2 函数调用操作符 5.3 结构成员 6. 操作符的属性 6.1 操作符的优先级 大家好呀!上篇文章中我们详细讲解了操作符的前半部分&#xff0c…