mrcen3204097569-spec/lean-electron-vue
开发工具一个不依赖第三方集成插件的 Electron + Vite + Vue 3 + TS 桌面模板,构建流程可读可改。
想要一个能看懂构建流程的 Electron 桌面应用起点,这个模板值得花半小时翻一遍;如果你期待开箱即用的大而全脚手架,它并不合适。
解决什么问题
用 Vue 做桌面应用,通常要把 Vite 和 Electron 接起来,处理开发服务器地址、preload 编译和打包。常见的集成插件把这些接线藏了起来,一旦主进程重载或构建产物出问题,只能去调别人的抽象层。这个模板把连接压缩成两个很薄的自定义插件:pnpm dev 启动 Vite、用 esbuild 编译主进程,再带着 VITE_DEV_SERVER_URL 拉起 Electron;pnpm build 只产出可运行的 dist/,不调用 electron-builder;pnpm dist 才生成安装包。改动主进程会重新编译并重启 Electron,改动 *.preload.ts 会重新编译并刷新窗口,渲染进程则有 HMR。结果是拿到一个能跑、能读、能改的桌面骨架。
有什么不同
安全默认值写得比较明确:上下文隔离和 sandbox 默认开启,渲染进程关闭 Node 集成和 <webview>,能力都从 preload 的 contextBridge 暴露。window.open 由主进程接管,只接受白名单窗口选项,只允许 app:// 或开发服务器同源地址,外链交给系统浏览器。代价是每加一项渲染进程能力,都要在 preload 和共享类型文件里显式声明,这是刻意的麻烦,而不是零配置的便利。
自动更新基于 electron-updater,带检查、下载进度和安装弹窗,但 README 明确要求生产环境用 HTTPS,配置里的 http://127.0.0.1 只用于本机调试;明文 HTTP 更新会让中间人有机会替换安装包。所有依赖都放在 devDependencies,主进程连同 electron-updater 被 esbuild 打进 mainEntry.js,因此安装包不需要 node_modules。这让包体更精简,但排查主进程问题时要看打出来的 bundle,而不是依赖目录。测试只覆盖纯逻辑,UI 行为和打包流程不在单测范围内。
谁值得试
适合已经会 Vue 3、想给内部工具或单窗口小工具找个轻量 Electron 起点的开发者,尤其是愿意改几十行 Vite 插件代码、而不是去学一套集成框架的人。模板自带无边框标题栏、app:// 协议和 history 路由示例,能省掉这类应用的初始配置。不适合要做大型跨平台产品、需要丰富 Electron 插件生态的人,也不适合完全不想维护构建脚本的人,因为这套模板有意把构建流程交回给你。已经统一使用集成插件的团队,再引入这套自写桥接会多出一个需要维护的部件。
使用条件与边界
环境要求 Node.js ^20.19.0 或 >=22.12.0,以及 pnpm 10,旧版本 Node 无法直接使用。Electron 45 首次运行才下载二进制,electron-builder 打包时也要下载额外工具,网络不佳时需要按项目说明设置 Electron 和 electron-builder 镜像。
自动更新不只是初始配置,还有持续维护:改 package.json 版本号、执行 pnpm dist、把安装包、.blockmap 和 latest*.yml 上传到 HTTPS 更新服务器。README 给出的打包目标是 Windows NSIS、macOS dmg 和 Linux AppImage,但生成三平台安装包的 CI 矩阵只在手动触发或推送 v* tag 时运行,日常提交不会验证每个平台的打包结果。
HotRepo 点评
HotRepo 从 2026-10-24 开始跟踪该仓库,在 2026-10-25 记录到新项目榜(TypeScript)第 17 名、累计 152 stars。这只是两天内两个日期的快照,不是每日增长数据,热度能否持续还无法判断。决定使用前,先确认它固定的 Node 与 Electron 版本能满足你目标平台的打包需求。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。