当前位置: 首页 > news >正文

electron-builder打包配置(应用名、安装包、图标、快捷方式、自定义文件关联启动等)

使用的是electron-vite + electron-builder

electron-builder.yml中配置,主要使用的是windows,其他配置请自行验证

appId: cn.kingray.www
# 只能string 不能用${productName}
productName: xx软件
copyright: Copyright © Powered by xx公司
directories:buildResources: build# output: release
files:- '!**/.vscode/*'- '!src/*'- '!electron.vite.config.{js,ts,mjs,cjs}'- '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'- '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'- '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
asarUnpack:- resources/**- out/main/chunks/*.node
asar:smartUnpack: true
# 设置自定义文件关联启动
fileAssociations:description: kingrayFile# 自定义文件后缀ext: krzj# 自定义文件图标icon: build/icons/win/icon.ico
win:# 只能string 不能用${productName}executableName: xx软件target: nsis# 必须为true 并且需要管理员运行signAndEditExecutable: trueicon: build/icons/win/icon.ico
nsis:# 安装包名称artifactName: ${productName}-${version}-setup.${ext}# 快捷方式名称shortcutName: ${productName}# 卸载程序显示名称uninstallDisplayName: ${productName}# 是否创建桌面快捷方式createDesktopShortcut: always# 是否创建开始菜单快捷方式createStartMenuShortcut: true# 是否为单机版oneClick: false# 是否为机器级别安装perMachine: true# 是否允许更改安装目录allowToChangeInstallationDirectory: true# 是否在卸载时删除应用程序数据deleteAppDataOnUninstall: false# 安装程序图标installerIcon: build/icons/win/icon.ico# 卸载程序图标uninstallerIcon: build/icons/win/icon.ico# 安装程序头部图标installerHeaderIcon: build/icons/win/icon.ico# 安装程序侧边栏图标installerSidebar: build/icons/win/icon.ico# 许可证文件# license: build/license.txt
mac:entitlementsInherit: build/entitlements.mac.plistextendInfo:- NSCameraUsageDescription: Application requests access to the device's camera.- NSMicrophoneUsageDescription: Application requests access to the device's microphone.- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.notarize: false
dmg:artifactName: ${productName}-${version}.${ext}
linux:target:- AppImage- snap- debmaintainer: electronjs.orgcategory: Utility
appImage:artifactName: ${productName}-${version}.${ext}
npmRebuild: false
publish:provider: genericurl: http://192.168.2.32:8904/

其中${productName}、${version}对应的是package.json中的参数

  "name": "app","productName": "xx软件","version": "2.0.2",

将png图标转化为ico

执行package.json中的脚本,使用electron-icon-maker,将resources/icon.png输出到build

"build:icons": "electron-icon-maker --input=./resources/icon.png --output=./build",

目录

在这里插入图片描述

系统托盘图标

需要使用png,ico无法展示

    // ---- 窗口收纳于托盘 ---const trayIconPath = join(__dirname, '../../resources/icon.png')const trayIcon = nativeImage.createFromPath(trayIconPath)const tray = new Tray(trayIcon)// 设置托盘工具提示(鼠标悬停时的名称)tray.setToolTip('xx软件')// 创建上下文菜单const contextMenu = Menu.buildFromTemplate([{ label: '显示应用', click: () => mainWindow?.show() },{ label: '退出', click: () => app.quit() }])tray.setContextMenu(contextMenu)// (可选)点击托盘图标显示/隐藏窗口tray.on('click', () => {if (mainWindow?.isVisible()) {mainWindow?.hide()} else {mainWindow?.show()}})

相关文章:

  • 全新RA2L2 MCU超低功耗、支持CAN及USB-C、拓展工业及便携式应用
  • 护城河尚浅,理想汽车驶入慢车道
  • torch 高维矩阵乘法分析,一文说透
  • Linux set 命令
  • Vue的双向绑定魔法:如何让数据与视图‘心有灵犀’?
  • Spring Boot 集成国内AI,包含文心一言、通义千问和讯飞星火平台实战教程
  • python学习打卡day52
  • 哈希表三种数据结构在leetcode中的使用情况分析
  • 前端给一行文字不设置宽度 ,不拆分 ,又能让某几个字在视觉下方居中显示
  • 打破语言壁垒!DHTMLX Gantt 与 Scheduler 文档正式上线中文等多语言版本!
  • Vue3本地存储实现方案
  • vue配置代理的两种方式
  • 洛谷:B3799 [NICA #1] 序列
  • Go语言中的可重入函数与不可重入函数
  • iOS-SM3加密算法N种集成
  • 自然语言处理期末复习
  • 使用RAG的思想进行PPT生成的框架思路-SlideCoder
  • 语言模型进化论:从“健忘侦探”到“超级大脑”的破案之旅
  • Unity动画的RootMotion
  • [特殊字符] Harmony OS Next里的Web组件:网页加载的全流程掌控手册
  • 厦门网站改版/网络广告代理
  • 做网站赚多少/抖音营销软件
  • wordpress 如何从新安装/云优客seo排名公司
  • 受欢迎的模板网站建设/郑州疫情最新动态
  • 反恶意镜像网站/网络营销是什么
  • 申请网站怎么申请/微信管理工具