electron について
Electron 開発向けのスキルで、クロスプラットフォームのデスクトップアプリの構築、理解、問題解決を支援します。一般的な作業に沿って、サンプル、API リファレンス、テンプレートを整理しています。
主な機能
- 01メイン・レンダラープロセスの解説
- 02IPC と BrowserWindow のサンプル
- 03メニュー、トレイ、ダイアログ API
- 04パッケージ化とセキュリティの解説
- 05API リファレンスとコードテンプレート
活用シーン
- 01Electron アプリのひな型作成
- 02プロセス間通信の実装
- 03ネイティブメニューやトレイ機能の追加
- 04アプリのパッケージ化と配布の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill electronインストール後、Claude Code で/electronを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtapi/app.mdbrowser-window.mdexamples/advanced/packaging.mdexamples/api/browser-window.mdmenu.mdexamples/getting-started/installation.mdquick-start.mdexamples/processes/ipc-communication.mdmain-process.mdtemplates/main-process.mdpreload-script.md詳細
このスキルを使用するタイミング
ユーザーが次のことを希望する場合は、いつでもこのスキルを使用します。
- Electron を使用してクロスプラットフォームのデスクトップアプリケーションを構築する
- Electron のアーキテクチャ(メインプロセス、レンダラープロセス、プリロード)を理解する
- プロセス間の IPC(プロセス間通信)を実装する
- BrowserWindow インスタンスを作成、管理する
- メニュー、トレイアイコン、ネイティブ機能を実装する
- Electron アプリケーションをパッケージ化、配布する
- Electron Forge を使用してプロジェクトのひな形を作成、ビルドする
- Electron アプリケーションをデバッグ、テストする
- セキュリティのベストプラクティスを実装する
- Electron API(app、BrowserWindow、ipcMain、ipcRenderer など)を使用する
このスキルの使用方法
このスキルは Electron の公式ドキュメントの構成(https://www.electronjs.org/zh/docs/latest/、https://www.electronjs.org/zh/docs/latest/api/app)に合わせて整理されています。Electron を扱う際は、次の手順に従います。
-
トピックを特定します。ユーザーのリクエストから判断します。
- はじめに/クイックスタート →
examples/getting-started/installation.mdまたはexamples/getting-started/quick-start.md - メインプロセス/メインプロセス →
examples/processes/main-process.md - レンダラープロセス/レンダラープロセス →
examples/processes/renderer-process.md - IPC 通信/IPC 通信 →
examples/processes/ipc-communication.md - BrowserWindow/ウィンドウ →
examples/api/browser-window.md - メニュー/メニュー →
examples/api/menu.md - パッケージ化/パッケージ化 →
examples/advanced/packaging.md - セキュリティ/セキュリティ →
examples/advanced/security.md
- はじめに/クイックスタート →
-
examples/ディレクトリから適切なサンプルファイルを読み込みます。はじめに(クイックスタート) -
examples/getting-started/:examples/getting-started/installation.md- Electron のインストールと基本設定examples/getting-started/quick-start.md- クイックスタートチュートリアル
プロセス -
examples/processes/:examples/processes/main-process.md- メインプロセスの概念と使用方法examples/processes/renderer-process.md- レンダラープロセスの概念examples/processes/preload-scripts.md- プリロードスクリプトの使用方法examples/processes/ipc-communication.md- IPC 通信のパターン
API のサンプル -
examples/api/:examples/api/browser-window.md- BrowserWindow の使用方法examples/api/menu.md- メニューとコンテキストメニューexamples/api/tray.md- システムトレイexamples/api/dialog.md- ファイルダイアログexamples/api/ipc-main.md- ipcMain の使用方法examples/api/ipc-renderer.md- ipcRenderer の使用方法
高度なトピック -
examples/advanced/:examples/advanced/packaging.md- アプリケーションのパッケージ化examples/advanced/security.md- セキュリティのベストプラクティスexamples/advanced/auto-updater.md- 自動アップデーターexamples/advanced/native-modules.md- ネイティブモジュール
ツール -
examples/tools/:examples/tools/electron-forge.md- Electron Forge の使用方法examples/tools/electron-fiddle.md- Electron Fiddle の使用方法
-
構文、構造、ベストプラクティスについては、該当するサンプルファイルの具体的な指示に従います。
重要な注意事項:
- すべてのサンプルは Electron の最新 API に準拠しています
- サンプルでは CommonJS(require)と ES モジュール(import)の両方を使用しています
- 各サンプルファイルには、重要な概念、コード例、要点が含まれています
- ベストプラクティスや一般的なパターンについては、必ずサンプルファイルを確認してください
- Electron は Windows、macOS、Linux に対応しています
-
必要に応じて、
api/ディレクトリにある API ドキュメントを参照します。api/app.md- app モジュール APIapi/browser-window.md- BrowserWindow APIapi/ipc-main.md- ipcMain APIapi/ipc-renderer.md- ipcRenderer APIapi/menu.md- Menu APIapi/tray.md- Tray API
-
templates/ディレクトリにあるテンプレートを使用します。templates/main-process.md- メインプロセスのテンプレートtemplates/preload-script.md- プリロードスクリプトのテンプレートtemplates/renderer-process.md- レンダラープロセスのテンプレートtemplates/package-json.md- package.json のテンプレート
ドキュメントの対応関係(公式ドキュメントとの1対1対応)
examples/→ https://www.electronjs.org/zh/docs/latest/api/→ https://www.electronjs.org/zh/docs/latest/api/app
クイックスタートの例
// main.js
const { app, BrowserWindow, ipcMain } = require('electron')
const path = require('path')
function createWindow() {
const win = new BrowserWindow({
width: 800, height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: false, // Security: always disable
contextIsolation: true // Security: always enable
}
})
win.loadFile('index.html')
}
app.whenReady().then(createWindow)
// IPC handler example
ipcMain.handle('get-data', async () => {
return { message: 'Hello from main process' }
})
// preload.js
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('api', {
getData: () => ipcRenderer.invoke('get-data')
})
API リファレンス(api/)
api/app.md- app モジュール APIapi/browser-window.md- BrowserWindow APIapi/ipc-main.md/api/ipc-renderer.md- IPC APIapi/menu.md/api/tray.md/api/dialog.md- UI API
ベストプラクティス
- セキュリティ:レンダラープロセスで nodeIntegration を有効にせず、プリロードスクリプトを使用します
- プロセスの分離:メインプロセスとレンダラープロセスを分離します
- IPC 通信:プロセス間の安全な通信には IPC を使用します
- リソース管理:リソース(ウィンドウ、リスナー)を適切にクリーンアップします
- エラー処理:適切なエラー処理とクラッシュレポートを実装します
- パフォーマンス:パフォーマンスを最適化し、デバッグには webContents を使用します
- パッケージ化:パッケージ化には Electron Forge または electron-builder を使用します
- 自動更新:本番アプリには自動アップデーターを実装します
- ネイティブモジュール:ネイティブモジュールの互換性に対処します
- クロスプラットフォーム:対象となるすべてのプラットフォームでテストします
リソース
- 公式ウェブサイト:https://www.electronjs.org/zh/
- ドキュメント:https://www.electronjs.org/zh/docs/latest/
- API リファレンス:https://www.electronjs.org/zh/docs/latest/api/app
- Electron Forge:https://www.electronforge.io
- Electron Fiddle:https://www.electronjs.org/zh/fiddle
- GitHub リポジトリ:https://github.com/electron/electron
キーワード
Electron, デスクトップアプリ, メインプロセス, レンダラープロセス, プリロード, IPC, BrowserWindow, Menu, Tray, Dialog, パッケージ化, electron-builder, electron-forge, electron-fiddle, クロスプラットフォーム, デスクトップアプリケーション, メインプロセス, レンダラープロセス, IPC 通信, ウィンドウ, メニュー, トレイ, パッケージ化