技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • 基础入门

    • Electron 学习指南
    • 窗口管理
    • 进程通信
    • 对话框
  • 进阶内容

    • 菜单和托盘
    • 打包发布
    • Electron 自动更新
  • 框架集成

    • React + Electron
    • Vue + Electron

打包发布

electron-builder

安装

yarn add -D electron-builder

配置 package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-builder",
    "build:win": "electron-builder --win",
    "build:mac": "electron-builder --mac",
    "build:linux": "electron-builder --linux"
  },
  "build": {
    "appId": "com.example.myapp",
    "productName": "我的应用",
    "directories": {
      "output": "dist"
    },
    "files": [
      "**/*",
      "!node_modules/**/*",
      "node_modules/electron/**/*"
    ],
    "win": {
      "target": ["nsis"],
      "icon": "build/icon.ico"
    },
    "mac": {
      "target": ["dmg"],
      "icon": "build/icon.icns",
      "category": "public.app-category.utilities"
    },
    "linux": {
      "target": ["AppImage"],
      "icon": "build/icon.png",
      "category": "Utility"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true
    }
  }
}

打包

# 打包当前平台
yarn build

# 打包 Windows
yarn build:win

# 打包 macOS
yarn build:mac

# 打包 Linux
yarn build:linux

自动更新

安装

yarn add electron-updater

配置

// main.js
const { autoUpdater } = require('electron-updater');

app.whenReady().then(() => {
  // 检查更新
  autoUpdater.checkForUpdatesAndNotify();

  // 监听更新事件
  autoUpdater.on('checking-for-update', () => {
    console.log('检查更新...');
  });

  autoUpdater.on('update-available', (info) => {
    console.log('发现新版本:', info.version);
  });

  autoUpdater.on('update-not-available', () => {
    console.log('已是最新版本');
  });

  autoUpdater.on('download-progress', (progress) => {
    console.log(`下载进度: ${progress.percent}%`);
  });

  autoUpdater.on('update-downloaded', () => {
    console.log('更新下载完成');
    autoUpdater.quitAndInstall();
  });
});

发布配置

{
  "build": {
    "publish": [
      {
        "provider": "github",
        "owner": "your-username",
        "repo": "your-repo"
      }
    ]
  }
}

代码签名

macOS

{
  "build": {
    "mac": {
      "identity": "Developer ID Application: Your Name (TEAM_ID)",
      "hardenedRuntime": true,
      "gatekeeperAssess": false,
      "entitlements": "build/entitlements.mac.plist",
      "entitlementsInherit": "build/entitlements.mac.plist"
    }
  }
}

Windows

{
  "build": {
    "win": {
      "certificateFile": "cert.pfx",
      "certificatePassword": "password"
    }
  }
}
最近更新: 2026/2/6 15:39
Contributors: hailong
Prev
菜单和托盘
Next
Electron 自动更新