Electron 打包与发布指南:让你的应用运行在 Windows、macOS、Linux

🚀 Electron 打包与发布指南:让你的应用运行在 Windows、macOS、Linux

使用 Electron 开发桌面应用只是第一步,最终我们还需要将应用打包成用户可运行的可执行文件(如 .exe、.dmg、.AppImage),并能在各平台上正常安装运行。本篇将手把手教你实现跨平台打包与发布。


🧰 一、准备工作

📦 安装 Node.js

访问 https://nodejs.org/ 下载并安装最新版 Node.js,并确保 npm 可用:

bash 复制代码
node -v
npm -v

⚙️ 安装依赖

假设你已有一个基于 Electron 的项目结构:

bash 复制代码
npm install --save-dev electron electron-builder

🏗️ 二、配置 package.json

在 package.json 中添加如下字段:

json 复制代码
{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "public/main.js", 
  "scripts": {
    "dev": "electron .",
    "build": "electron-builder"
  },
  "build": {
    "appId": "com.example.electronapp",
    "productName": "MyElectronApp",
    "files": [
      "dist/**/*",
      "public/**/*",
      "node_modules/**/*",
      "package.json"
    ],
    "directories": {
      "output": "build"
    },
    "win": {
      "target": "nsis"
    },
    "mac": {
      "target": "dmg"
    },
    "linux": {
      "target": "AppImage"
    }
  },
  "devDependencies": {
    "electron": "^27.0.0",
    "electron-builder": "^24.0.0"
  }
}

🛠️ 三、构建前准备

如果你是使用 Vue/React 等前端框架开发 UI:

bash 复制代码
npm run build  # Vue/React 的构建命令

确保构建结果(如 dist/)已准备好,并在 main.js 中正确引用:

js 复制代码
win.loadFile('dist/index.html');

📦 四、打包应用

使用如下命令打包项目:

bash 复制代码
npm run build

执行完后,会在 build/ 目录下生成对应平台的可执行文件:

  • Windows:MyElectronApp Setup.exe
  • macOS:MyElectronApp.dmg
  • Linux:MyElectronApp.AppImage

🧪 五、平台差异说明

平台 格式 工具 说明
Windows .exe 安装包 NSIS 可安装,支持快捷方式、卸载
macOS .dmg DMG 拖拽安装
Linux .AppImage / .deb AppImage / Snap 可直接运行或打包成发行版

🚚 六、自动更新(可选)

Electron Builder 支持自动更新,但需使用服务器(如 GitHub Releases、私有 CDN)来托管更新文件。

添加如下配置:

json 复制代码
"publish": [
  {
    "provider": "github",
    "owner": "your-github-name",
    "repo": "your-repo-name"
  }
]

在主进程中监听更新:

js 复制代码
const { autoUpdater } = require('electron-updater');

app.whenReady().then(() => {
  autoUpdater.checkForUpdatesAndNotify();
});

🌐 七、发布你的应用

GitHub Releases

  1. 将构建产物上传到 GitHub Releases
  2. 发布 release 版本,供用户下载安装

其他发布平台:

  • 自建服务器/CDN
  • 使用 Snap Store(Linux)
  • 使用 Microsoft Store / Mac App Store(需额外签名与配置)

🔐 八、平台签名与 notarization(推荐)

Windows 签名

需要购买代码签名证书(如 DigiCert):

bash 复制代码
electron-builder build --win --csc-link cert.pfx --csc-key-password yourpassword

macOS notarization(苹果要求)

注册 Apple Developer 账号,使用 Xcode 或 notarize 工具进行签名上传:

bash 复制代码
electron-builder build --mac --publish always

📌 总结

步骤 内容
准备 安装 Electron + electron-builder
配置 package.json 添加 build 字段
打包 npm run build 生成可执行文件
发布 上传 GitHub / 服务器 / 应用商店
更新 使用 electron-updater 自动更新
安全 平台签名,确保可信任和合规性

📎 附录:常见问题

❓白屏或路径错误

请使用 file:// 或 __dirname 动态路径拼接加载本地资源。

❓打包时提示找不到主入口

确保 main.js 路径正确,且 main 字段已在 package.json 中设置。

相关推荐
云和数据.ChenGuang18 小时前
python sorted函数详细剖析
开发语言·人工智能·windows·python·1024程序员节
EVE จุ๊บ18 小时前
Mac安装Playwright
macos
小熊吃保安20 小时前
Windows也能用 Apple Watch 解锁
windows·rust·开源
fengye20716121 小时前
Windows 环境下硬核编译 CPython 避坑指南
windows
全栈探索者21 小时前
出图模型怎么选?同一只猫的四场实测:Z-Image、Qwen-Image 2.1、SD1.5 三维对决
人工智能·macos·aigc·stablediffusion·comfyui
成成爱质评1 天前
Windows 任务计划程序 + 唤醒定时器:让电脑按时开机干活
windows·单片机·电脑
禁默1 天前
iPhone远程控制Windows电脑哪款好?四款工具实测横评
windows·电脑·iphone
Sakura_j_h_1 天前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
隔窗听雨眠1 天前
PostgreSQL单表从Windows迁移到Linux:差异剖析、方案对比与全流程实战
linux·windows·postgresql
加载力科技2 天前
Mac解压LZ4格式全攻略-免命令行极速解压
macos·mac 解压工具·乐压·mac 解压 lz4·lz4 格式·tar.lz4·极速解压