如何用 electron-builder 打包 Dat Desktop?跨平台安装包(AppImage/deb/NSIS/dmg)制作完整指南
【免费下载链接】dat-desktopPeer to peer data syncronization [ DEPRECATED - More info on active projects and modules at https://dat-ecosystem.org/ ]项目地址: https://gitcode.com/gh_mirrors/da/dat-desktop
Dat Desktop 是一款基于 Electron 的 P2P 数据同步桌面应用,本指南将带你用 electron-builder 为它一键制作跨平台安装包(AppImage / deb / NSIS / dmg),从零跑通「构建 → 打包 → 输出安装包」的完整流程 📦
打包原理:一次配置,三端通吃
Dat Desktop 的打包链路非常清晰:
- Webpack 编译:webpack.config.js 将 app/index.js 打包为
static/bundle.js,入口指向主进程代码; - Electron 主进程启动:index.js 创建
BrowserWindow加载 index.html,通过 preload.js 安全地注入渲染进程; - electron-builder 打包:读取 package.json 中的
build字段,把整个应用打成各平台安装包。
好消息是——你不需要修改任何配置,所有平台目标都已在 package.json 里写好了。
build 字段关键配置一览
| 配置项 | 值 | 作用 |
|---|---|---|
appId | land.dat.dat-desktop | 全局唯一应用标识 |
asar | true | 将代码压缩进 asar 归档,加速启动 |
directories.output | dist | 安装包统一输出到dist/目录 |
linux.target | AppImage、deb | 同时产出两种 Linux 包 |
mac/dmg | icon.icns+ 拖拽布局 | macOS 磁盘镜像安装界面 |
win.target | NSIS | Windows 标准安装向导 |
protocols | dat协议 | 注册 dat 链接协议 |
一键制作跨平台安装包:npm 命令速查
项目预置了 4 条打包脚本(见 package.json),新手只需记住dist:
git clone https://gitcode.com/gh_mirrors/da/dat-desktop cd dat-desktop npm install npm run dist完整命令清单:
| 命令 | 作用 |
|---|---|
npm run pack | 仅生成解包目录(--dir),适合调试,不产出安装程序 |
npm run dist | 生产构建 + 打包当前平台安装包 |
npm run dist:all | 一次打包Linux + macOS + Windows |
npm run dist:publish | 打包并自动发布到 tag 或 GitHub Draft |
所有命令都带--x64 --ia32参数,意味着每个平台会同时产出 64 位和 32 位两种架构的安装包。
💡 注意:
npm run dist会先执行build:prod(生产模式 Webpack 编译),再调用 electron-builder,所以一条命令即可完成全部工作。
各平台安装包输出详解
打包结束后,打开dist/目录,你会看到按平台分组的产物:
Linux:AppImage 与 deb 双格式
- AppImage:免安装、双击即跑,适合大多数用户;
- deb:Debian/Ubuntu 系标准软件包,可通过
apt安装,synopsis描述为 "Dat Desktop App"(见 package.json)。
macOS:dmg 镜像与拖拽安装体验
Mac 端会生成.dmg磁盘镜像。项目还精心配置了安装窗口布局(package.json):应用图标固定在左侧,右侧是/Applications快捷方式,用户只需「拖拽安装」。
Windows:NSIS 安装向导
Windows 端使用 NSIS 技术生成.exe安装程序,附带标准安装向导与build/icon.png图标(见 package.json)。
常见问题排错清单 🛠
Electron 下载太慢?
项目 README.md 的 FAQ 给出了答案——设置镜像变量再安装:
ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" npm install打包后启动异常?
主进程在 index.js 中会根据NODE_ENV区分开发/生产模式:生产模式下自动加载preload.js并启动 lib/auto-updater.js 自动更新模块(每 30 分钟检查一次新版本)。若本地 Node 版本与 Electron 内置版本不一致,控制台会输出 WARNING 提示,建议执行nvm install对齐版本。
测试模式下为什么看不到 preload?
出于 Spectron 兼容考虑(index.html),测试环境通过 URL hash#test直接加载 bundle,属于正常设计。
小结
- 全部配置集中在 package.json 的
build字段,开箱即用; - 一条
npm run dist命令即可完成生产构建 + 双架构安装包输出; - 产物统一位于
dist/,覆盖 Linux(AppImage/deb)、macOS(dmg)、Windows(NSIS)三大平台。
掌握这套流程后,任何 Electron 项目的跨平台打包问题都能迎刃而解 🎉
【免费下载链接】dat-desktopPeer to peer data syncronization [ DEPRECATED - More info on active projects and modules at https://dat-ecosystem.org/ ]项目地址: https://gitcode.com/gh_mirrors/da/dat-desktop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考