SuperAPI AI 工具集

electrobun-best-practices

编程与开发

查看项目

更新于 10-15 19:55

技能介绍

用途:该技能面向使用 TypeScript 与 Bun 构建或维护 Electrobun 跨平台桌面应用的场景,给出安全默认值、类型化 RPC 模式,以及构建、更新与分发的运维指引。建议与 TypeScript 最佳实践技能配合加载。

架构与主要能力:Electrobun 应用以 Bun 应用形式运行。Bun 主进程从 electrobun/bun 导入,浏览器上下文(视图)从 electrobun/view 导入,RPC schema 在两端共享。bun 与浏览器上下文之间通过 postMessage、FFI,以及部分路径下的加密 WebSocket 通信。能力涵盖类型化 RPC、导航规则、事件与退出处理、菜单与托盘、多账号分区隔离、CEF 渲染一致性、构建与更新配置。

使用方式:快速开始可运行 bunx electrobun init、bun install、bun start。推荐脚本包括 start(electrobun run)、dev(electrobun dev)、dev:watch(electrobun dev --watch),以及 build:dev、build:canary(electrobun build --env=canary)、build:stable。类型化 RPC 需在共享 types 文件中定义 RPCSchema,bun 端用 BrowserView.defineRPC 注册 handlers,浏览器端用 Electroview.defineRPC 并 new Electroview({ rpc })。安全默认值包括对不可信内容使用 sandbox: true、strict navigation allowlists、独立 partition、校验 preload 消息 payload,且不要运行时写入 PATHS.RESOURCES_FOLDER,改用 Utils.paths.userData。退出清理应使用 before-quit 事件而非异步 process.on("exit")。

适用场景与限制:适合构建跨平台桌面应用,包含托盘应用、多账号隔离、更新器等。需注意 API 迭代快,使用高级或平台相关选项前应核对最新文档与 CLI 输出;sandbox: true 会禁用 RPC;导航规则采用最后匹配生效;Linux 下部分系统发起的退出路径可能不触发 before-quit,Utils.quit() 与 process.exit() 可靠。更新器报无更新时需检查 release.baseUrl 与产物命名。Electrobun 的具体收费与价格信息暂未提供。