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 中设置。

相关推荐
CodeOfCC32 分钟前
c语言 封装跨平台线程头文件
linux·c语言·windows
momo卡1 小时前
MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)
c语言·c++·windows
阿福不是狗6 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
gen_7 小时前
mac环境下的python、pycharm和pip安装使用
python·macos·pycharm
SY.ZHOU11 小时前
Significant Location Change
macos·ios·cocoa
南林yan13 小时前
DLL动态库实现文件遍历功能(Windows编程)
windows
Mike_66613 小时前
win10安装WSL2、Ubuntu24.04
windows·ubuntu·wsl2
buyue__14 小时前
MacOS解决局域网“没有到达主机的路由 no route to host“
macos
liulun14 小时前
Skia如何绘制几何图形
c++·windows