返回顶部
E

ElectronElectron桌面应用

Build Electron desktop apps with secure architecture and common pitfall avoidance.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,291
下载量
免费
免费
3
收藏
概述
安装方式
版本历史

Electron

安全底线

  • - nodeIntegration: false 是强制要求——渲染进程若拥有Node.js访问权限,意味着XSS攻击将导致系统完全沦陷
  • contextIsolation: true 是强制要求——将预加载上下文与渲染进程隔离
  • 明确白名单化IPC通道——绝不从渲染进程转发任意通道名称
  • 验证所有IPC消息内容——渲染进程不可信,需像对待外部API输入一样处理
  • 绝不在渲染进程中使用eval()或new Function()——这会突破所有安全边界

预加载脚本规则

  • - contextBridge.exposeInMainWorld() 是唯一安全的桥梁——暴露原始ipcRenderer存在风险
  • 跨桥传递数据前需克隆——防止原型污染攻击
  • 最小化API暴露面——仅暴露特定功能函数,而非通用的发送/接收接口

架构陷阱

  • - webPreferences 在窗口创建后即锁定——无法后续启用nodeIntegration
  • 阻塞主进程将冻结所有窗口——所有操作必须异步,禁止同步文件操作
  • 每个BrowserWindow都是独立渲染进程——无法直接共享JS变量
  • 使用show: false配合ready-to-show——避免白屏闪烁,呈现更原生体验

原生模块痛点

  • - 预编译原生模块无法直接使用——必须针对Electron特定Node版本重新编译
  • 每次Electron升级后需运行electron-rebuild——版本不匹配将导致运行时崩溃
  • N-API模块更稳定——相比基于nan的模块,能更好适应Electron升级

打包陷阱

  • - 开发依赖默认包含在内——不显式排除会导致生产构建体积膨胀
  • macOS自动更新需要代码签名——未签名应用无法使用Squirrel
  • Windows通知需要调用app.setAppUserModelId()——缺失时静默失败
  • ASAR并非加密——源码可通过简单工具读取,切勿用于存储机密信息

平台特定问题

  • - CORS会拦截file://协议——需使用自定义协议(app://)或本地服务器
  • Windows自动更新需要NSIS或Squirrel——安装程序格式至关重要
  • macOS通用二进制需添加--universal标志——同时支持Intel和ARM架构

内存与性能

  • - 未关闭的窗口会泄漏内存——使用完毕后需显式调用win.destroy()
  • 延迟加载重量级模块——启动时间直接影响用户感知质量
  • 若最小化时仍需计时器,设置backgroundThrottling: false

调试技巧

  • - 主进程:添加--inspect标志,通过chrome://inspect连接
  • 渲染进程:使用webContents.openDevTools()或键盘快捷键
  • 使用electron-log持久化日志——console.log在重启后会消失

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 electron-1776420004 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 electron-1776420004 技能

通过命令行安装

skillhub install electron-1776420004

下载

⬇ 下载 Electron v1.0.0(免费)

文件大小: 2.02 KB | 发布时间: 2026-4-17 20:04

v1.0.0 最新 2026-4-17 20:04
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部