Electron子进程专用打包工具
2026/9/12 14:56:41 网站建设 项目流程

Electron子进程的构建默认不会移除依赖中的无用代码,这与前端构建有本质区别。

特性前端构建子进程(Node.js)构建
Tree-shaking✅ 支持(静态分析 ES modules)❌ 默认不支持(CommonJS 动态 require)
代码压缩✅ 默认启用(Terser 等)❌ 默认不压缩(保留可读性)
无用代码移除✅ 基于 import/export 分析❌ 整个模块复制到产物
Bundle 大小优化后通常较小包含完整 node_modules,体积大

下面介绍几种常用的子进程构建工具。

工具现状总览

工具维护状态推荐指数适用场景
electron-vite✅ 积极维护⭐⭐⭐⭐⭐首选推荐
vite-plugin-electron✅ 维护中⭐⭐⭐⭐已有 Vite 项目集成
electron-webpack❌ 基本废弃不推荐新项目使用

详细对比

1. electron-webpack(不推荐)

现状:

  • 维护停滞:根据搜索结果,electron-webpack 已经没有维护者,与新版 Webpack、Electron、TypeScript 不兼容
  • 技术债务:锁定在 Webpack 4.x,无法升级到 Webpack 5
  • 社区迁移:Expo 等官方项目已明确弃用 electron-webpack

问题:

# 版本锁定严重webpack4.46.0(最新是5.x) electron9.4.3(最新是30+) typescript3.9.9(最新是5.x)

结论:❌ 新项目绝对避免使用


2. electron-vite(强烈推荐)

官方信息:

  • 作者:alex8088(活跃维护者)
  • GitHub:https://github.com/alex8088/electron-vite
  • 文档:https://cn-evite.netlify.app/

核心优势:

  1. 完整的脚手架工具- 提供npm create @quick-start/electron一键创建项目
  2. 主进程支持 Tree-shaking- 使用 Vite/Rollup 打包主进程,真正移除无用代码
  3. 源码保护- 支持 V8 字节码编译保护源代码
  4. TypeScript 开箱即用- 无需额外配置
  5. 热更新(HMR)- 主进程和渲染进程都支持

实际使用案例:

  • Floro(视觉版本控制工具)- 生产环境使用
  • 小鹿线 CRM- 中国企业级应用
  • Pieces App(AI 开发工具)- 官方博客推荐
  • Notion、Figma 类工具- 社区大量项目采用

构建对比(主进程):

// 传统方式(无优化)const{app,BrowserWindow}=require('electron')const_=require('lodash')// 整个 4MB 被打包// electron-vite 方式(Tree-shaking)import{app,BrowserWindow}from'electron'import{pick}from'lodash-es'// 仅打包 pick 函数(~2KB)

体积优化效果:

项目传统 electron-builderelectron-vite
主进程大小15MB+(含完整 node_modules)800KB(打包压缩后)
启动速度慢(需解析大量文件)快(单一 bundle)
源码保护无(明文 JS)有(可选字节码)

3. vite-plugin-electron(可选)

与 electron-vite 的区别:

特性vite-plugin-electronelectron-vite
定位Vite 插件完整构建工具
主进程打包使用 Vite 构建 API内置完整构建流程
配置复杂度较低(插件形式)中等(独立工具)
生态兼容完全兼容 Vite 插件生态部分兼容
性能标准更高(针对 Electron 优化)
脚手架有(create 命令)

选择建议:

  • 已有 Vite 项目→ 使用vite-plugin-electron集成
  • 新项目→ 直接使用electron-vite脚手架

注意混淆:
有两个相似插件:

  • vite-plugin-electron- 基于 Vite 构建,功能完整
  • vite-electron-plugin- 基于 esbuild,仅转译 TS,不打包(更快但功能弱)

推荐方案

方案 A:新项目(强烈推荐)

# 使用 electron-vite 脚手架npmcreate @quick-start/electron@latest# 选择技术栈:Vue / React / Svelte / Solid / Vanilla

优势:

  • 主进程真正的 Tree-shaking 和代码压缩
  • 预配置 TypeScript、ESM、热更新
  • 生产环境验证(多个商业产品使用)

方案 B:已有 Vite 项目集成

npminstallvite-plugin-electron-D

配置:

// vite.config.tsimportelectronfrom'vite-plugin-electron'exportdefault{plugins:[electron({entry:'electron/main.ts',// 主进程入口onstart:(options)=>options.startup()// 热重载})]}

公司/项目使用案例

项目/公司工具规模来源
Floroelectron-vite商业产品
小鹿线 CRMelectron-vite企业级
Noteworthy(迁移中)electron-vite开源项目
Pieces Appelectron-viteAI 开发工具
Expo Electron已弃用 electron-webpack官方项目

最终建议

场景推荐工具原因
全新 Electron 项目electron-vite维护最活跃、功能最完整、社区最大
已有 Vite 前端项目vite-plugin-electron无缝集成,改动最小
维护旧项目迁移到electron-viteelectron-webpack 已死
追求极致构建速度vite-electron-plugin仅转译不打包,但功能受限

electron-vite 是目前(2024-2025)最可靠的选择,它解决了传统 Electron 构建中主进程无法 Tree-shaking 的问题,且有多个生产环境验证的案例。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询