【electron 4】electron配置打包环境

首先要准备应用图标

window需要:ico
mac需要:icns
linux需要png
借助:electron-icon-builder

安装:

npm i electron-icon-builder -D

配置package.json scripts

"build-icon": "electron-icon-builder --input=./electron/assets/icon.png --output=./electron/build --flatten"

说明:
input:icon.png是我需要引入的图标
output:是我将input引入图标所转换不同大小不同格式的图标输出文件

配置打包:electron-forge

因为我是已有的项目了,所以这里我只需要安装并引入electron-forge,虽然我进行配置了项目,但是我为了图省事用了electron框架,所以我必须用electron-builder进行配置打包了,所以这里针对electron-forge的笔记可能会比较浅薄。

npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"

因为配置时没考虑到maker,所以很容易忽略这段安装:

npm install --save-dev @electron-forge/cli @electron-forge/maker-squirrel @electron-forge/maker-deb @electron-forge/maker-zip

package.json示例:

devDependencies: {"@electron-forge/cli": "^7.4.0","@electron-forge/maker-deb": "^7.4.0","@electron-forge/maker-dmg": "^7.4.0","@electron-forge/maker-rpm": "^7.4.0","@electron-forge/maker-squirrel": "^7.4.0","@electron-forge/maker-zip": "^7.4.0","@electron-forge/plugin-auto-unpack-natives": "^7.4.0","@electron-forge/plugin-fuses": "^7.4.0",
}scripts: {"build:os": "electron-forge package","build:maker": "electron-forge make",
}config: {"forge": "./config.forge.js"}

config.forge.js配置

module.exports = {"packagerConfig": {version: '0.0.1',appVersion: '0.0.1',name: 'electron-umi',productName: 'viefong',icon: 'electron/build/icons',out: './release/',overwrite: true,asar: true,"copyright": "Copyright © 2024",// "ignore": [ // 不需要打包的文件和文件夹的路径列表//   ".git",//   ".vscode",//   "node_modules/.cache",//   "src"// ],descriptions: '微鳯即时通讯工具',// 配置其他构建器(特殊情况下使用)"win": { // Windows平台的配置"target": "nsis", // 打包的目标格式为NSIS安装程序"icon": "./electron/build/icons/icon.ico", // Windows平台的图标路径"publisherName": "electron-umi开发者团队", // 发布者名称"fileAssociations": [ // 关联文件类型的配置{"ext": "myext", // 文件扩展名"name": "electron-umi", // 文件类型名称"description": "electron-umi即时通讯工具", // 文件类型描述"role": "Editor" // 文件类型的角色}],"certificateFile": "path/to/certificate.pfx", // 数字证书文件的路径"certificatePassword": "password123" // 数字证书的密码},"mac": { // macOS平台的配置"target": "dmg", // 打包的目标格式为DMG镜像"icon": "./electron/build/icons/icon.icns", // macOS平台的图标路径"category": "public.app-category.utilities", // 应用程序的分类"extendInfo": { // 扩展应用程序包的配置"NSAppTransportSecurity": {"NSAllowsArbitraryLoads": true // 允许应用程序加载任意的网络资源}}},"linux": { // Linux平台的配置"target": "deb", // 打包的目标格式为DEB包"icon": "./electron/build/icons/icon.png", // Linux平台的图标路径"category": "Utility", // 应用程序的分类"description": "electron-umi即时通讯工具", // 应用程序的描述"desktop": { // 创建桌面快捷方式的配置"Name": "electron-umi", // 快捷方式的名称"Comment": "electron-umi", // 快捷方式的注释"Exec": "./viefong", // 快捷方式的执行命令"Terminal": false // 是否在终端中打开应用程序}}},"makers": [{"name": "@electron-forge/maker-squirrel","config": {"name": "electron_quick_start","setupIcon": "./electron/build/icons/icon.ico"}},{"name": '@electron-forge/maker-dmg',"config": {"format": 'ULFO',icon: './electron/build/icons/icon.icns'}},{"name": "@electron-forge/maker-deb","config": {options: {icon: './electron/build/icons/icon.icns'}}},{"name": "@electron-forge/maker-rpm","config": {}}],"hook": {}
}

配置打包:electron-builder

安装:

yarn add electron-builder --dev

配置,在package.json中直接复制进去即可:

"build": {"appId": "com.electron.app","files": ["dist","node_modules","package.json"],"nsis": {"artifactName": "electron-umi","oneClick": false,"perMachine": true,"allowElevation": true,"allowToChangeInstallationDirectory": true,"installerIcon": "./electron/build/icons/icon.ico","uninstallerIcon": "./electron/build/icons/icon.ico","installerHeaderIcon": "./electron/build/icons/icon.ico","installerSidebar": "./electron/build/icons/sidebar-164x314.bmp","createDesktopShortcut": true,"createStartMenuShortcut": true,"include": "./electron/build/installer.nsh"},"asar": true,"asarUnpack": "**\\*.{node,dll}","afterSign": "electron/.erb/scripts/notarize.js","mac": {"target": {"target": "default","arch": ["arm64","x64"]},"type": "distribution","hardenedRuntime": true,"entitlements": "electron/assets/entitlements.mac.plist","entitlementsInherit": "electron/assets/entitlements.mac.plist","gatekeeperAssess": false,"icon": "electron/build/icons/icon.icns"},"dmg": {"icon": "electron/build/icons/icon.icns","contents": [{"x": 130,"y": 220},{"x": 410,"y": 220,"type": "link","path": "/Applications"}]},// 自动更新"publish": {"provider": "github","owner": "electron-umi","repo": "electron-umi"},"directories": {"app": "release/app","buildResources": "assets","output": "release/build"}},

注:因为我项目中用的是umi脚手架搭建的react,打包后,是空白页面,所以要在.umirc.ts中配置一下即可

history: {type: 'hash',
}

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

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

相关文章

js获取某月往前推一年或半年的年月数组

前言 需求:需要显示某月份往前推一年或者半年的费用情况,显示到柱形图上,后台接口只返回有数据的年份,这就需要前端拿全部月份数组去比对并显示。 开始 上代码: // date:选择的月份,比如:2024-04,//n:半年或者1年,…

完美解决多种情况下的 java.lang.NullPointerException 的异常

文章目录 1. 复现错误2. 分析问题3. 解决问题1. 复现错误 在工作中,经常会遇见java.lang.NullPointerException的异常,这种异常千奇百怪,但明确一点的是:它是空指针异常,也称之为NPE异常,如下代码所示: @Setter @Getter @Accessors(chain = true) public class Student…

【UE5.1 C++】VS2022下载安装

目录 步骤 一、Visual Studio下载安装 二、Visual Studio Integration Tool插件安装 先看一下UE和VS的兼容性 (虚幻5:为虚幻引擎C项目设置Visual Studio开发环境) (虚幻4:设置虚幻引擎的Visual Studio&#xff0…

XiaodiSec day022 Learn Note 小迪安全学习笔记

XiaodiSec day022 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day22 主要内容 原生 js 款该 前端验证&未授权 开始 js 中也存在变量和函数,在浏览器中可以直接从浏览器中解析出,相当于白盒 而在之前的类似于 java 或 P…

libxml2读写XML文件测试

libxml2是一个功能强大的XML解析库,可以用于读取和写入XML文件。以下是一些基本的例子来展示如何使用libxml2进行读写操作。 写文件 在这个例子中,我们首先创建一个新的XML文档,并设置一个根节点。然后,我们创建两个新的节点&…

大型网站系统架构演化实例_6.使用分布式文件系统和分布式数据库系统

1.使用分布式文件系统和分布式数据库系统 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这时需要使用分布式数据库。文件系统也一…

3dmax安装错误代码2146885616,也出现以下可选组件未成功安装:-Substance

当3dmax高版本出现安装错误代码2146885616,或者可选组件未成功安装:-Substance时,如图 解决方法如下 打开autoremove,点击扩展功能,搜索2146885616点击搜索 点击出现的按钮,提示如图,请重启电脑再点击一…

html网页在展示时,监听网络是否断网,如果断网页面暂停点击响应

序言: 集合百家之所长,方著此篇文章,废话少说,直接上代码,找好你的测试网页,进行配置,然后复制粘贴代码,就可以了。 1.css文件内容 #newbody{display: none;width: 100%;height: 9…

24V转2.8V2A降压芯片WT6030

24V转2.8V2A降压芯片WT6030 WT6030是一种高效同步整流降压开关模式转换器,集成内部功率MOSFET。该器件在宽输入电源范围内提供3A峰值输出电流,展现出卓越的负载和线路调节性能。其设计仅需要最小数量的外部现成组件,并且采用了节省空间的ESO…

Dubbo的服务注册与发现是如何实现的?注册中心的作用是什么?

Dubbo的服务注册与发现机制及注册中心的作用 在微服务架构中,服务注册与发现是一个至关重要的环节,它负责维护服务提供者和消费者之间的动态关系,确保服务调用能够顺利进行。Dubbo作为一款高性能、轻量级的开源Java RPC框架,其服…

农业大数据概论-期末复习预测卷

单选 大数据特征 数据量大、多样性、高速性、低价值密度 物联网感知层的关键技术—— RFID技术 电子标签 非接触式的自动识别技术 边缘计算 最近端服务 非常靠近用户 快 定性数据 ① 不精确 ② 描述性 名词解释 农业大数据 农业大数据是融合了农业地域性、季节性、多…

渲染管线学习总结

1.渲染管线的作用 渲染管线的核心功能是利用给定的虚拟相机,三维物体,光源等信息,来生成或者渲染一张二维图像 2.整体流程 一种粗略的划分方法是将渲染管线划分成四个阶段——应用阶段(Application),几何…

MIMO(多天线)通信的四种译码算法

目录 一. 介绍 二. 极大似然译码 三. 破零译码算法 四. 最小均方误差算法 五. 球形译码 一. 介绍 发射天线数记为Mt,接收天线数记为Mr。由此发射信号x为向量: 接受信号y为向量: 信道H为矩阵: 利用n代表噪声向量,…

揭秘:从低代码到APP工厂,从休闲T恤到蓝色工装

2024年3月29日,感恩伯乐,感恩同行——2024年得帆十周年庆典暨用户大会在上海佘山世茂洲际酒店圆满举办。作为业内规模最大的低代码主题峰会,本次峰会汇聚了来自全国62个城市,500参会嘉宾,59位业界专家带来了2场主题发布…

亿发:信息化管理软件是什么?企业智慧信息化解决方案的重要性

在当今数字化时代,企业信息化管理已成为提升运营效率和促进发展的关键。信息化管理软件是企业数字化转型的重要工具,但单一软件往往难以满足企业多方面的高质量发展需求。因此,企业整体信息化解决方案的重要性愈发凸显。 什么是信息化管理软件…

springboot WebFilter+@Component urlPatterns 全部拦截

问题描述 WebFilter(filterName “ssoFilter”,urlPatterns “/*”)配置 Order中的value越小,优先级越高。 解决方法一: 在springboot启动类上添加 ServletComponentScan(basePackages “com.package.path”) 解决方法二: 手动配置bean(…

XiaodiSec day025 Learn Note 小迪安全学习笔记

XiaodiSec day025 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day25 sql 注入 知识点 mysql 注入 mssql 注入 postgreSQL 注入 详细点: access 无高权限注入点,智能暴力猜解,不像 mysql 中的 schema mysql,postgr…

新质生产力应用场景深度分析,再塑行业格局

新质生产力应用场景深度分析 技术突破、要素创新配置和产业深度转型升级,催生“新质生产力”定义:新质生产力是由技术革命性突破、生产要素创新性配置、产业深度转型升级而催生的当代先进生产力,它以劳动者、劳动资料、劳动对象及 其优化组合…

安卓(Android)安装 Microsoft Authenticator 搞定 2FA 验证

现在越来越多网站强制 2FA 验证了,Microsoft Authenticator 是一个兼容性很强的 2FA 应用 app,如果能够安装它,可以解决绝大部分的 2FA 验证问题。 但是,在国内如果你用苹果手机还好,如果是用安卓(Android…