[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3ndohri2n2j9d":3},{"code":4,"message":5,"data":6,"timestamp":36},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":32,"homepage":33,"updated_at":34,"history":35},"mrcen3204097569-spec\u002Flean-electron-vue",17,"轻量的 Electron + Vite + Vue 3 + TypeScript 桌面应用模板，不依赖第三方集成插件 | A lean Electron + Vite + Vue 3 + TS desktop app template","TypeScript",152,3,56,2,[],"一个不依赖第三方集成插件的 Electron + Vite + Vue 3 + TS 桌面模板，构建流程可读可改。","想要一个能看懂构建流程的 Electron 桌面应用起点，这个模板值得花半小时翻一遍；如果你期待开箱即用的大而全脚手架，它并不合适。\n\n## 解决什么问题\n\n用 Vue 做桌面应用，通常要把 Vite 和 Electron 接起来，处理开发服务器地址、preload 编译和打包。常见的集成插件把这些接线藏了起来，一旦主进程重载或构建产物出问题，只能去调别人的抽象层。这个模板把连接压缩成两个很薄的自定义插件：`pnpm dev` 启动 Vite、用 esbuild 编译主进程，再带着 `VITE_DEV_SERVER_URL` 拉起 Electron；`pnpm build` 只产出可运行的 `dist\u002F`，不调用 electron-builder；`pnpm dist` 才生成安装包。改动主进程会重新编译并重启 Electron，改动 `*.preload.ts` 会重新编译并刷新窗口，渲染进程则有 HMR。结果是拿到一个能跑、能读、能改的桌面骨架。\n\n## 有什么不同\n\n安全默认值写得比较明确：上下文隔离和 sandbox 默认开启，渲染进程关闭 Node 集成和 `\u003Cwebview>`，能力都从 preload 的 contextBridge 暴露。`window.open` 由主进程接管，只接受白名单窗口选项，只允许 `app:\u002F\u002F` 或开发服务器同源地址，外链交给系统浏览器。代价是每加一项渲染进程能力，都要在 preload 和共享类型文件里显式声明，这是刻意的麻烦，而不是零配置的便利。\n\n自动更新基于 `electron-updater`，带检查、下载进度和安装弹窗，但 README 明确要求生产环境用 HTTPS，配置里的 `http:\u002F\u002F127.0.0.1` 只用于本机调试；明文 HTTP 更新会让中间人有机会替换安装包。所有依赖都放在 `devDependencies`，主进程连同 `electron-updater` 被 esbuild 打进 `mainEntry.js`，因此安装包不需要 `node_modules`。这让包体更精简，但排查主进程问题时要看打出来的 bundle，而不是依赖目录。测试只覆盖纯逻辑，UI 行为和打包流程不在单测范围内。\n\n## 谁值得试\n\n适合已经会 Vue 3、想给内部工具或单窗口小工具找个轻量 Electron 起点的开发者，尤其是愿意改几十行 Vite 插件代码、而不是去学一套集成框架的人。模板自带无边框标题栏、`app:\u002F\u002F` 协议和 `history` 路由示例，能省掉这类应用的初始配置。不适合要做大型跨平台产品、需要丰富 Electron 插件生态的人，也不适合完全不想维护构建脚本的人，因为这套模板有意把构建流程交回给你。已经统一使用集成插件的团队，再引入这套自写桥接会多出一个需要维护的部件。\n\n## 使用条件与边界\n\n环境要求 Node.js `^20.19.0` 或 `>=22.12.0`，以及 pnpm 10，旧版本 Node 无法直接使用。Electron 45 首次运行才下载二进制，electron-builder 打包时也要下载额外工具，网络不佳时需要按[项目说明](https:\u002F\u002Fgithub.com\u002Fmrcen3204097569-spec\u002Flean-electron-vue\u002Fblob\u002Fmain\u002FREADME.md)设置 Electron 和 electron-builder 镜像。\n\n自动更新不只是初始配置，还有持续维护：改 `package.json` 版本号、执行 `pnpm dist`、把安装包、`.blockmap` 和 `latest*.yml` 上传到 HTTPS 更新服务器。README 给出的打包目标是 Windows NSIS、macOS dmg 和 Linux AppImage，但生成三平台安装包的 CI 矩阵只在手动触发或推送 `v*` tag 时运行，日常提交不会验证每个平台的打包结果。\n\n## HotRepo 点评\n\nHotRepo 从 2026-10-24 开始跟踪该仓库，在 2026-10-25 记录到新项目榜（TypeScript）第 17 名、累计 152 stars。这只是两天内两个日期的快照，不是每日增长数据，热度能否持续还无法判断。决定使用前，先确认它固定的 Node 与 Electron 版本能满足你目标平台的打包需求。",{"slug":19,"name":20},"developer-tools","开发工具",[22,23,24,25,26,27,28,29,30,31],"desktop-app","electron","electron-builder","electron-updater","element-plus","pinia","template","typescript","vite","vue3","MIT",null,"2026-10-25T02:52:50Z",[],1792909664]