electron-pro
91
总安装量
91
周安装量
#2528
全站排名
安装命令
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill electron-pro
Agent 安装分布
opencode
72
claude-code
69
gemini-cli
59
cursor
54
antigravity
52
Skill 文档
Electron Desktop Developer
Purpose
Provides cross-platform desktop application development expertise specializing in Electron, IPC architecture, and OS-level integration. Builds secure, performant desktop applications using web technologies with native capabilities for Windows, macOS, and Linux.
When to Use
- Building cross-platform desktop apps (VS Code, Discord style)
- Migrating web apps to desktop with native capabilities (File system, Notifications)
- Implementing secure IPC (Main â Renderer communication)
- Optimizing Electron memory usage and startup time
- Configuring auto-updaters (electron-updater)
- Signing and notarizing apps for app stores
2. Decision Framework
Architecture Selection
How to structure the app?
â
ââ **Security First (Recommended)**
â ââ Context Isolation? â **Yes** (Standard since v12)
â ââ Node Integration? â **No** (Never in Renderer)
â ââ Preload Scripts? â **Yes** (Bridge API)
â
ââ **Data Persistence**
â ââ Simple Settings? â **electron-store** (JSON)
â ââ Large Datasets? â **SQLite** (`better-sqlite3` in Main process)
â ââ User Files? â **Native File System API**
â
ââ **UI Framework**
ââ React/Vue/Svelte? â **Yes** (Standard SPA approach)
ââ Multiple Windows? â **Window Manager Pattern**
ââ System Tray App? â **Hidden Window Pattern**
IPC Communication Patterns
| Pattern | Method | Use Case |
|---|---|---|
| One-Way (Renderer â Main) | ipcRenderer.send |
logging, analytics, minimizing window |
| Two-Way (Request/Response) | ipcRenderer.invoke |
DB queries, file reads, heavy computations |
| Main â Renderer | webContents.send |
Menu actions, system events, push notifications |
Red Flags â Escalate to security-auditor:
- Enabling
nodeIntegration: truein production - Disabling
contextIsolation - Loading remote content (
https://) without strict CSP - Using
remotemodule (Deprecated & insecure)
Workflow 2: Performance Optimization (Startup)
Goal: Reduce launch time to < 2s.
Steps:
-
V8 Snapshot
- Use
electron-linkorv8-compile-cacheto pre-compile JS.
- Use
-
Lazy Loading Modules
- Don’t
require()everything at top ofmain.ts.
// Bad import { heavyLib } from 'heavy-lib'; // Good ipcMain.handle('do-work', () => { const heavyLib = require('heavy-lib'); heavyLib.process(); }); - Don’t
-
Bundle Main Process
- Use
esbuildorwebpackfor Main process (not just Renderer) to tree-shake unused code and minify.
- Use
4. Patterns & Templates
Pattern 1: Worker Threads (CPU Intensive Tasks)
Use case: Image processing or parsing large files without freezing the UI.
// main.ts
import { Worker } from 'worker_threads';
ipcMain.handle('process-image', (event, data) => {
return new Promise((resolve, reject) => {
const worker = new Worker('./worker.js', { workerData: data });
worker.on('message', resolve);
worker.on('error', reject);
});
});
Pattern 2: Deep Linking (Protocol Handler)
Use case: Opening app from browser (myapp://open?id=123).
// main.ts
if (process.defaultApp) {
if (process.argv.length >= 2) {
app.setAsDefaultProtocolClient('myapp', process.execPath, [path.resolve(process.argv[1])]);
}
} else {
app.setAsDefaultProtocolClient('myapp');
}
app.on('open-url', (event, url) => {
event.preventDefault();
// Parse url 'myapp://...' and navigate renderer
mainWindow.webContents.send('navigate', url);
});
6. Integration Patterns
frontend-ui-ux-engineer:
- Handoff: UI Dev builds the React/Vue app â Electron Dev wraps it.
- Collaboration: Handling window controls (custom title bar), vibrancy/acrylic effects.
- Tools: CSS
app-region: drag.
devops-engineer:
- Handoff: Electron Dev provides build config â DevOps sets up CI pipeline.
- Collaboration: Code signing certificates (Apple Developer ID, Windows EV).
- Tools: Electron Builder, Notarization scripts.
security-engineer:
- Handoff: Electron Dev implements feature â Security Dev audits IPC surface.
- Collaboration: Defining Content Security Policy (CSP) headers.
- Tools: Electronegativity (Scanner).