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

相关推荐
小左OvO5 小时前
叫板要干翻 typora 的 milkup 现在怎么样了?
electron·markdown
有梦想的攻城狮6 小时前
Java 11中的Collections类详解
java·windows·python·java11·collections
忒可君6 小时前
C# winform FTP功能
开发语言·windows·c#
十五年专注C++开发7 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
degree5207 小时前
全平台轻量浏览器推荐|支持Win/macOS/Linux,极速加载+隐私保护+扩展插件,告别广告与数据追踪!
windows·macos·电脑
修来7 小时前
Vue3项目改造为electron桌面端
electron
冯浩(grow up)14 小时前
macos 安装nodepad++ (教程+安装包+报错后的解决方法)
macos
许泽宇的技术分享1 天前
Windows桌面自动化的革命性突破:深度解析Windows-MCP.Net Desktop模块的技术奥秘
windows·自动化·.net
2501_928094651 天前
Ps 2025 图像编辑 Photoshop(Mac中文)
图像处理·macos·photoshop·ps
ccnocare1 天前
window.electronAPI.send、on 和 once
前端·electron