news 2026/7/21 17:48:48

Electron Vite Monorepo打包发布:electron-builder配置完全手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Electron Vite Monorepo打包发布:electron-builder配置完全手册

Electron Vite Monorepo打包发布:electron-builder配置完全手册

【免费下载链接】vite-vue3-adminElectron Turborepo monorepo with pnpm, Vue, Vite boilerplate项目地址: https://gitcode.com/gh_mirrors/vi/vite-vue3-admin

Electron Vite Monorepo是一个基于pnpm、Vue和Vite的现代化Electron应用开发框架,通过Turborepo实现高效的多包管理。本指南将详细介绍如何使用electron-builder配置并打包发布你的Electron应用,从基础设置到高级优化,帮助你快速掌握完整的打包流程。

📦 核心依赖与项目结构

在开始配置前,确保项目中已安装electron-builder。查看apps/electron/package.json文件,确认开发依赖中包含:

"electron-builder": "26.8.1"

项目采用Monorepo结构,Electron主进程代码位于apps/electron/目录,打包配置主要集中在该目录下的scripts/build.mts文件中。

Vite作为构建工具,为Electron应用提供快速的开发体验和优化的生产构建

⚙️ 基础配置详解

入口文件与输出目录

build.mts中,首先定义了应用的基础信息和目录结构:

const options: Configuration = { appId: isDev ? 'com.electron.app' : 'com.electron-dev.app', productName: appName, directories: { output: '../../out', // 打包输出路径 buildResources: 'buildResources' // 构建资源目录 }, files: [ // 需要打包的文件 'dist', 'resources' ] }

跨平台目标配置

electron-builder支持多平台打包,配置位于options对象的平台特定属性中:

Windows平台
win: { icon: 'icon.ico', target: [ { target: 'nsis', // 使用NSIS生成安装程序 arch: ['ia32', 'x64'] // 支持32位和64位系统 } ] }
macOS平台
mac: { target: [ { target: 'default', arch: ['x64', 'arm64'] // 支持Intel和Apple Silicon芯片 } ], icon: 'icon.icns', hardenedRuntime: true, // 启用 hardened runtime entitlements: 'buildResources/entitlements.mac.plist' }
Linux平台
linux: { target: ['AppImage', 'rpm', 'deb'] // 生成多种Linux包格式 }

🚀 打包命令与工作流

项目的打包命令定义在apps/electron/package.json的scripts中:

"scripts": { "build:dev": "vite build --mode development && pnpm bundle", "build:prod": "vite build && pnpm bundle", "pack:dev": "pnpm build:dev && dotenvx run -f .env.development -- pnpm pack:app", "pack:prod": "pnpm build:prod && dotenvx run -f .env.production -- pnpm pack:app" }

开发环境打包

pnpm --filter electron-main pack:dev

生产环境打包

pnpm --filter electron-main pack:prod

打包过程会先通过Vite构建应用代码,然后调用electron-builder进行打包,最终输出到out/目录。

🔄 应用更新配置

项目集成了自动更新功能,配置位于options.publish

publish: [ { provider: 'github', // 使用GitHub发布更新 releaseType: 'draft', // 创建草稿发布 } ]

要启用自动更新,需要在主进程中集成electron-updater,相关代码位于apps/electron/src/modules/updater/目录。

📝 高级配置技巧

自定义安装程序行为

通过NSIS配置自定义Windows安装体验:

nsis: { oneClick: false, // 禁用一键安装 perMachine: true, // 按机器安装(需要管理员权限) allowToChangeInstallationDirectory: true, // 允许用户选择安装目录 createDesktopShortcut: true, // 创建桌面快捷方式 shortcutName: shortcutName // 快捷方式名称 }

资源文件处理

在打包前,脚本会自动复制Web应用和Preload脚本到构建目录:

cpSync(path.join(workDir, '../web/dist'), path.join(workDir, './dist/web'), copySyncOptions) cpSync(path.join(workDir, '../preload/dist'), path.join(workDir, './dist/preload'), copySyncOptions)

代码签名与公证

macOS应用需要签名和公证才能在App Store上架或正常运行:

mac: { hardenedRuntime: true, entitlements: 'buildResources/entitlements.mac.plist', notarize: false // 设置为true启用自动公证 }

完整的签名配置可参考buildResources/entitlements.mac.plist文件。

📚 总结与资源

通过本文介绍的配置,你可以实现Electron应用的跨平台打包、自动更新和签名发布。完整的配置代码位于:

  • 打包脚本:apps/electron/scripts/build.mts
  • 构建资源:apps/electron/buildResources/
  • 依赖配置:apps/electron/package.json

要开始使用这个框架,只需克隆仓库并安装依赖:

git clone https://gitcode.com/gh_mirrors/vi/vite-vue3-admin cd vite-vue3-admin pnpm install

掌握这些配置技巧后,你可以根据项目需求定制更复杂的打包流程,为用户提供专业的应用分发体验。

【免费下载链接】vite-vue3-adminElectron Turborepo monorepo with pnpm, Vue, Vite boilerplate项目地址: https://gitcode.com/gh_mirrors/vi/vite-vue3-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 17:48:35

Beam移动钱包开发:iOS和Android钱包集成指南

Beam移动钱包开发:iOS和Android钱包集成指南 【免费下载链接】beam Beam: Scalable Confidential Cryptocurrency. Leading the way to Confidential DeFi 项目地址: https://gitcode.com/gh_mirrors/bea/beam Beam作为领先的保密加密货币项目,提…

作者头像 李华
网站建设 2026/7/21 17:48:25

【Autosar从入门到精通到进阶实战篇】66 PDU路由器:让报文在CAN、LIN、Ethernet之间“无感穿越”

66 PDU路由器:让报文在CAN、LIN、Ethernet之间“无感穿越” 老张上周五晚上十一点给我打电话,声音里带着明显的焦虑:“小陈,我们的网关出事了。CAN上采集到的电池温度数据,通过以太网DoIP上报到云端,但云端收到的温度值总是比实际高5度,而且时不时丢包。客户已经投诉了…

作者头像 李华
网站建设 2026/7/21 17:47:42

【Autosar从入门到精通到进阶实战篇】67 CAN状态管理器:从“裸奔”到“优雅降级”

67 CAN状态管理器:从“裸奔”到“优雅降级” 开篇故事:一次深夜的救援电话 去年冬天,我凌晨三点被电话吵醒。电话那头是刚入职半年的小王,声音带着哭腔:“哥,我们的ADAS控制器在路试时,遇到CAN总线错误就死机了!客户说这是‘裸奔’状态,要求48小时内给方案。” 我让…

作者头像 李华
网站建设 2026/7/21 17:45:35

开发者必看:gh_mirrors/datase/datasets集成与扩展教程

开发者必看:gh_mirrors/datase/datasets集成与扩展教程 【免费下载链接】datasets Datasets used in Plotly examples and documentation 项目地址: https://gitcode.com/gh_mirrors/datase/datasets GitHub 加速计划 / datase / datasets 是 Plotly 示例和文…

作者头像 李华
网站建设 2026/7/21 17:45:24

【小程序计算机毕业设计案例】基于前后端分离的员工日志审核系统 公司员工工作汇报与日志查询小程序 基于SpringBoot的企业员工考勤日志综合管理平台(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/21 17:45:22

Electron Vite Monorepo代码规范:ESLint + TypeScript最佳实践

Electron Vite Monorepo代码规范:ESLint TypeScript最佳实践 【免费下载链接】vite-vue3-admin Electron Turborepo monorepo with pnpm, Vue, Vite boilerplate 项目地址: https://gitcode.com/gh_mirrors/vi/vite-vue3-admin 在现代前端开发中&#xff0c…

作者头像 李华