关于 electron
面向 Electron 开发的 Agent 技能,覆盖 Windows、macOS 和 Linux 上的 JavaScript 桌面应用。内容按架构、进程通信、安全、开发与分发等主题整理。
主要功能
- 01主进程、渲染进程与预加载指导
- 02IPC 与上下文隔离模式
- 03安全和性能实践
- 04原生 API 与模块指导
- 05打包、签名与更新
适用场景
- 01搭建 Electron 应用
- 02连接渲染进程与主进程
- 03检查安全和性能方案
- 04准备应用分发构建
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hairyf/ skills --skill electron安装后在 Claude Code 中输入/electron确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
GENERATION.mdreferences/best-practices-performance.mdbest-practices-security.mdbest-practices-versioning.mdcore-context-isolation.mdcore-ipc.mdcore-process-model.mdcore-sandbox.mddevelop-accessibility.mddevelop-app-lifecycle.mddevelop-base-window.mddevelop-browser-window.mddevelop-clipboard.mddevelop-command-line.mddevelop-content-tracing.mddevelop-context-menu.mddevelop-cookies.mddevelop-crash-reporter.mddevelop-debug.mddevelop-debugger.mddevelop-devtools-extension.mddevelop-dialog.mddevelop-dock.mddevelop-downloads.mddevelop-drag-drop.mddevelop-environment-variables.mddevelop-esm.mddevelop-keyboard-shortcuts.mddevelop-linux-desktop-actions.mddevelop-menus-tray.md详细介绍
Electron 内嵌 Chromium 和 Node.js,因此你可以用一套 JavaScript 代码库同时发布到 Windows、macOS 和 Linux。在搭建项目、连接主进程/渲染进程 IPC、配置安全与打包,或集成原生模块与自动更新时,可使用这些技能。
该技能基于 Electron(最新版),生成于 2026-01-30。
核心参考
| 主题 | 描述 | 参考 |
|---|---|---|
| 进程模型 | 主进程、渲染进程、预加载、实用进程;各自适用场景 | core-process-model |
| IPC | 渲染进程↔主进程模式(send、invoke、主进程→渲染进程)、序列化 | core-ipc |
| 上下文隔离 | contextBridge,从预加载暴露安全 API | core-context-isolation |
| 沙箱 | 进程沙箱、预加载 polyfill、何时禁用 | core-sandbox |
开发
| 主题 | 描述 | 参考 |
|---|---|---|
| 无障碍 | setAccessibilitySupportEnabled、辅助技术、AXManualAccessibility | develop-accessibility |
| 应用生命周期 | whenReady、window-all-closed、quit、单实例锁 | develop-app-lifecycle |
| BaseWindow | 多视图窗口;contentView、View、addChildView;parent/modal | develop-base-window |
| BrowserWindow | 创建窗口、loadURL/loadFile、ready-to-show、webPreferences | develop-browser-window |
| 剪贴板 | readText/writeText、readHTML/writeHTML;从 preload 使用 | develop-clipboard |
| Cookies | session.cookies;get、set、remove、flushStore;changed 事件 | develop-cookies |
| 命令行 | app.commandLine、appendSwitch、hasSwitch;Electron/Node/Chromium 标志 | develop-command-line |
| 上下文菜单 | 右键菜单;webContents context-menu、Menu.popup | develop-context-menu |
| contentTracing | Chromium 跟踪;startRecording、stopRecording;chrome://tracing | develop-content-tracing |
| 崩溃报告器 | crashReporter.start、submitURL、extra;在 ready 之前调用 | develop-crash-reporter |
| 调试 | 渲染进程 DevTools、主进程(--inspect、Chrome/VSCode) | develop-debug |
| 调试器(CDP) | webContents.debugger;attach、detach、sendCommand;DevTools Protocol | develop-debugger |
| DevTools 扩展 | loadExtension、removeExtension;electron-devtools-installer | develop-devtools-extension |
| 对话框 | showOpenDialog、showSaveDialog、showMessageBox;通过 IPC 暴露 | develop-dialog |
| Dock | macOS Dock;bounce、badge、icon、menu、hide/show | develop-dock |
| 下载 | will-download、DownloadItem、setSavePath、preventDefault | develop-downloads |
| 键盘快捷键 | 加速键、本地(MenuItem)、全局(globalShortcut) | develop-keyboard-shortcuts |
| Linux 桌面操作 | .desktop 文件 Actions;启动器快捷方式;process.argv | develop-linux-desktop-actions |
| 菜单和托盘 | 应用/上下文/托盘/Dock 菜单;Tray 图标和上下文菜单 | develop-menus-tray |
| 原生图像 | createFromPath、createFromBuffer、模板图像;tray、icon | develop-native-image |
| 原生模块 | 使用原生 Node 插件;@electron/rebuild、node-gyp | develop-native-modules |
| Net | net.fetch、net.request;从主进程发起 HTTP(Chromium 栈) | develop-net |
| netLog | Session 网络日志;startLogging、stopLogging、captureMode | develop-net-log |
| 拖放 | 原生文件拖出;webContents.startDrag、IPC | develop-drag-drop |
| ESM | 主进程和 preload 中的 ES 模块;.mjs、注意事项 | develop-esm |
| 多线程 | Web Workers、nodeIntegrationInWorker;Worker 中无 Electron | develop-multithreading |
| 导航历史 | webContents.navigationHistory、goBack、goForward、getAllEntries | develop-navigation-history |
| 离屏渲染 | paint 事件、NativeImage;GPU 与软件;setFrameRate | develop-offscreen-rendering |
| parentPort | 实用进程子进程;process.parentPort message/postMessage | develop-parent-port |
| 电源监控 | suspend、resume、battery/AC、thermal-state-change、shutdown | develop-power-monitor |
| 电源保护程序 | powerSaveBlocker;阻止显示器/应用休眠;按 id 启动/停止 | develop-power-save-blocker |
| 进度条 | setProgressBar(任务栏/Dock);0–1、不确定状态 | develop-progress-bar |
| 协议 | 自定义协议(protocol.handle)、registerSchemesAsPrivileged | develop-protocol |
| 最近文档 | addRecentDocument、clearRecentDocuments;JumpList、Dock | develop-recent-documents |
| 安全存储 | encryptString、decryptString;操作系统钥匙串 | develop-safe-storage |
| 屏幕 | getPrimaryDisplay、getAllDisplays、workAreaSize、display 事件 | develop-screen |
| Session | partition、defaultSession、permissionRequestHandler、cookies | develop-session |
| 共享菜单 | macOS ShareMenu;分享到应用/社交;popup、shareMenu 角色 | develop-share-menu |
| Shell | openExternal、openPath、showItemInFolder、trashItem;安全 | develop-shell |
| 进程 | process.type、process.versions、process.platform、process.mas | develop-process |
| 环境变量 | ELECTRON_*、NODE_OPTIONS;fuses | develop-environment-variables |
| 代表文件 | setRepresentedFilename、setDocumentEdited(macOS 标题栏) | develop-represented-file |
| 系统偏好设置 | getEffectiveAppearance、getColor、getMediaAccessStatus | develop-system-preferences |
| Touch Bar | macOS TouchBar;项目(Button、Label、Slider 等)、setTouchBar | develop-touch-bar |
| 测试 | WebDriver/WebdriverIO E2E、无头 CI | develop-tests |
| 实用进程 | utilityProcess.fork、postMessage、MessagePortMain | develop-utility-process |
| Web 请求 | onBeforeRequest、onHeadersReceived、filter;设置 CSP | develop-web-request |
| webContents 导航 | will-navigate、setWindowOpenHandler、load 事件 | develop-webcontents-navigation |
| webFrame | 渲染进程缩放、insertCSS、executeJavaScript、拼写检查、帧树 | develop-web-frame |
| webFrameMain | 主进程帧控制;fromId/fromFrameToken、executeJavaScript、IPC | develop-web-frame-main |
| webUtils | 渲染进程 getPathForFile(File);文件输入路径;通过 preload 暴露 | develop-web-utils |
| 窗口自定义 | 无边框、透明、自定义标题栏 | develop-window-customization |
| Windows 任务栏 | JumpList、setThumbarButtons、setOverlayIcon、flashFrame | develop-windows-taskbar |
最佳实践
| 主题 | 描述 | 参考 |
|---|---|---|
| 性能 | 先测量,延迟加载,避免阻塞,打包 | best-practices-performance |
| 安全 | 内容加载、webPreferences、CSP、IPC 校验、分发 | best-practices-security |
| 版本管理 | SemVer、~ 与 ^、稳定分支、升级与 EOL | best-practices-versioning |
功能
| 主题 | 描述 | 参考 |
|---|---|---|
| ASAR | 打包/解包、Node 与 Web API 用法、unpack 选项、完整性 | features-asar |
| 圆角平滑 | -electron-corner-smoothing CSS;平滑圆角;system-ui | features-corner-smoothing |
| 深色模式 | nativeTheme、themeSource、prefers-color-scheme | features-dark-mode |
| 桌面捕获 | desktopCapturer、setDisplayMediaRequestHandler、getDisplayMedia | features-desktop-capture |
| Fuses | runAsNode、nodeCliInspect、asar 完整性;@electron/fuses | features-fuses |
| 应用内购买 | Mac App Store IAP;purchaseProduct、getProducts、transactions-updated | features-in-app-purchase |
| MessagePorts | 渲染进程到渲染进程以及主进程到渲染进程的消息传递;MessagePortMain | features-message-ports |
| 通知 | 主进程(Notification)、渲染进程(Web Notifications API) | features-notifications |
| 在线/离线 | net.isOnline()、net.online;navigator.onLine、online/offline 事件 | features-online-offline |
| 推送通知 | APNS(macOS);registerForAPNSNotifications、received-apns-notification | features-push-notifications |
| Service Workers | session.serviceWorkers;getAllRunning、主进程↔SW IPC(IpcMainServiceWorker) | features-service-workers |
| 拼写检查器 | 启用、setSpellCheckerLanguages、上下文菜单、词典 URL | features-spellchecker |
| 更新 | autoUpdater、Squirrel、发布版本元数据 | features-updates |
| Web 嵌入 | iframe、WebContentsView、webview 标签;各自的使用场景 | features-web-embeds |
分发
| 主题 | 描述 | 参考 |
|---|---|---|
| 代码签名 | macOS 签名 + 公证;Windows Authenticode | distribute-code-signing |
| Mac App Store | MAS 构建、Apple Distribution、沙盒、限制 | distribute-mac-app-store |
| 打包 | 工具(Forge)、手动布局、asar、品牌重塑 | distribute-packaging |
| Windows Store | AppX/MSIX、electron-windows-store、process.windowsStore | distribute-windows-store |
评论
支持 Markdown