【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.mfbz.cn/a/577346.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mac 教程 终端如何拆墙

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

面试:finalize

一、概述 将资源释放和清理放在finalize方法中非常不好,非常影响性能,严重时甚至会引起OOM(Out Of Memory),从Java9开始就被标注为Deprecated,不建议被使用了。 二、两个重要的队列 1、unfinalized 队列 当…

SpringBoot中多数据源灵活切换解决方案

本篇内容介绍了“SpringBoot中如何使用Dynamic Datasource配置多数据源”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 源码地址/文档说明 功能特性: 支持 数据源分组…

vue与Spring boot数据交互例子【简单版】

文章目录 什么是Vue?快速体验Vueaxios是什么?向Springboot后端发送数据接收Springboot后端数据小结 什么是Vue? 官网解释:Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上…

JAVA12

JAVA12 1 概述2 语法层次的变化1_swich表达式(预览) 3 API层次的变化1_支持数字压缩格式化2_String新方法3_Files新增mismatch方法 4 关于GC方面的新特性1_Shenandoah GC:低停顿时间的GC(预览)2_可中断的 G1 Mixed GC3_ 增强G1 5 其他新特性简…

ENVI下基于劈窗算法从MODIS数据中反演海表温度

劈窗算法最初是为反演海面温度开发的,具体地说是针对NOAA/AVHRR的4和5通道设计的,后来也被用来反演地表温度,这种算法较成熟,精度也高。劈窗算法以地表热辐射传导方程为基础,利用10~13μm 大气窗口内,两个相…

全志ARM-修改开发板内核启动日志

修改开发板内核日志输出级别: 默认输出级别为1,需要用超级用户权限修改 sudo vi /boot/orangepiEvn.txt 把第一行内核启动输出权限改为7,第二行把输出方式该为“serial”串口输出

Typora for Mac:轻量级Markdown编辑器

Typora for Mac是一款专为Mac用户设计的轻量级Markdown编辑器,它以其简洁的界面和强大的功能,成为了Markdown写作爱好者的首选工具。 Typora for Mac v1.8.10中文激活版下载 Typora的最大特色在于其所见即所得的编辑模式,用户无需关心复杂的M…

Ubuntu Mysql修改密码时遇到的问题

参考: ubuntu18.04 首次登录mysql未设置密码或忘记密码解决方法_ubuntu中mysql设置密码-CSDN博客 1. use mysql; #连接到mysql数据库 2. update mysql.user set authentication_stringpassword(123456) where userroot and Host localhost; #修改密码123456是密码…

微信小程序:8.WXSS

WXSS和CSS的关系 WXSS具有CSS大部分特性,同时,WXSS还对CSS进行扩充以及修改,适应微信小程序的开发。 与CSS相比,WXSS扩展的特性有: rpx尺寸单位imprt样式导入 rpx尺寸单位 rpx是微信小程序中独有的,用来…

相关运算及实现

本文介绍相关运算及实现。 相关运算在相关检测及数字锁相放大中经常用到,其与卷积运算又有一定的联系,本文简要介绍其基本运算及与卷积运算的联系,并给出实现。 1.定义 这里以长度为N的离散时间序列x(n),y(n)为例,相关运算定义如…

OSPF域间路由

注:区域(area)是以接口进行划分的 描述: R1的g0/0/1接口属于area 0 √ R1属于区域0和区域1 1.设计原则 1、OSPF区域的设计原则: 骨干区域有且只能存在一个 非骨干区域必须和骨干区域相连 多区域时&#…

使用JavaScript日历小部件和DHTMLX Gantt的应用场景(一)

DHTMLX Suite UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件,这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用…

深入了解MySQL:从基础到特性,全面解读关系数据库管理系统的历史与应用

文章目录 1. MySQL简介1.1 概述1.2 架构与兼容性1.3 开源与社区支持 2. MySQL的历史2.1 创始与初衷2.2 发展历程2.3 在Oracle的持续发展2.4 开源与商业结合 3. MySQL的核心特性4. MySQL在实际应用中的作用4.1 网站建设与内容管理4.2 商业智能与客户关系管理4.3 企业级应用与云集…

新媒体运营-----短视频运营-----PR视频剪辑----抠像及美颜磨皮

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. 超级键抠像绿(蓝)幕背景2. 常规视频抠像3. 美颜磨皮 1. 超级键抠像绿(蓝)幕背景 如果我们的素材是在摄影棚进行…

【R语言实战】——kNN和朴素贝叶斯方法实战

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

.net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

前情提要 接上篇文章,我们当前已完成如下内容: 创建应用成功创建接口成功配置Swagger实现接口注释和版本控制 本文章主要内容为:配置Swagger支持token传值测试接口 快速上手-代码配置 添加如下代码 文件目录:\xiaojinWebAppl…

06_Scala流程控制

文章目录 [toc] 1.流程控制**小结:** **2. Scala中流程控制没有三元运算符****2.1 Scala中如果逻辑代码只有一行可以省略花括号****小结:** **3. 循环控制****3.1 for控制****3.2循环守卫 --> 循环表达式添加逻辑判断****3.3 循环步长 --> 表示循环…

​「Python大数据」词频数据渲染词云图导出HTML

前言 本文主要介绍通过python实现数据聚类、脚本开发、办公自动化。词频数据渲染词云图导出HTML。 一、业务逻辑 读取voc数据采集的数据批处理,使用jieba进行分词,去除停用词词频数据渲染词云图将可视化结果保存到HTML文件中二、具体产出 三、执行脚本 python wordCloud.p…

Flutter - 折叠面板

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 flutter 自定义折叠组件 支持三种类型和两种展示效果可自定义title和被折叠的内容 效果图 示例 import package:flutter/material.dart; import /jh_common/widge…
最新文章