You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现electron-packager构建的Electron应用自动化更新?

Electron主进程代码修改后的自动化构建与更新方案

方案一:用GitHub Actions实现CI/CD自动化(适配GitHub Release更新)

直接在项目里配置GitHub Actions工作流,每次修改代码推送后自动完成编译、构建、发布全流程:

  1. 在项目根目录创建.github/workflows/build.yml文件,写入以下配置:
name: Electron Build & Release
on:
  push:
    branches: [main]  # 推送到main分支时自动构建
    tags: ['v*']      # 打版本tag时自动发布到Release
jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4
      - name: 配置Node.js环境
        uses: actions/setup-node@v4
        with:
          node-version: 20  # 换成你项目用的Node版本
      - name: 安装依赖
        run: npm install
      - name: 编译TypeScript(main.ts转js)
        run: npm run build  # 假设你package.json里有build脚本,比如tsc
      - name: 构建Electron应用生成exe
        run: npm run make   # 假设用electron-forge/builder的make命令,按需调整
      - name: 发布到GitHub Releases
        uses: softprops/action-gh-release@v2
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: out/make/squirrel.windows/x64/*.exe  # 换成你的exe实际输出路径
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  1. 配置完成后,每次往main分支push代码,Actions会自动构建;打版本tag(比如v1.0.1)推送时,会自动把exe上传到GitHub Releases,配合你现有的自动更新逻辑就能拉取新版本。

方案二:本地自动化脚本(开发阶段快速迭代)

写一个简单脚本,监听main.ts变化自动触发构建,不用每次手动敲命令:

  1. 如果你用Windows,创建auto-build.bat:
@echo off
echo 正在编译TypeScript...
npm run build
echo 正在构建Electron应用...
npm run make
echo 构建完成!exe文件路径:out/make/squirrel.windows/x64/

双击运行脚本,就能一次性完成编译+构建。

  1. 想要实时监听文件变化自动构建,安装chokidar依赖:npm install chokidar --save-dev,然后创建watch-build.js:
const chokidar = require('chokidar');
const { execSync } = require('child_process');

// 监听main.ts及其所在目录的文件变化
const watcher = chokidar.watch('./src/main.ts', { persistent: true });

watcher.on('change', (filePath) => {
  console.log(`文件 ${filePath} 已修改,开始自动构建...`);
  try {
    // 同步执行编译+构建命令,输出实时打印
    execSync('npm run build && npm run make', { stdio: 'inherit' });
    console.log('✅ 自动构建完成!');
  } catch (err) {
    console.error('❌ 构建失败:', err.message);
  }
});

console.log('🔍 已启动文件监听,等待main.ts修改...');

运行node watch-build.js,之后修改main.ts保存后就会自动触发构建。

方案三:优化更新策略(减少全量构建的必要性)

如果只是修改主进程的业务逻辑,可以尝试把非核心逻辑抽离到asar包外的脚本文件,通过require动态加载,这样修改这部分逻辑时不需要重新构建整个exe,只需要替换脚本文件即可。不过如果必须修改main.ts本身,还是得全量构建,但自动化流程能帮你省掉手动操作的麻烦。

内容的提问来源于stack exchange,提问作者Rodsps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:15:43