electrobun-dev について
electrobun-dev は、アプリをビルドして起動する Electrobun の開発モードコマンドを開発者向けに説明します。ファイル監視による再ビルドと再起動、レンダラーのデバッグ方法も扱います。
主な機能
- 01開発モードでのアプリのビルドと起動
- 02ファイル監視と再ビルド・再起動
- 03追加監視パスと除外パターンの設定
- 04CEF DevTools によるレンダラーの検査
- 05macOS ネイティブ WebView インスペクターの有効化
活用シーン
- 01開発用に Electrobun アプリを起動
- 02編集後のアプリを自動で再ビルド
- 03CEF レンダラーページの検査
- 04macOS ネイティブ WebView のデバッグ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dexploarer/ plugin-electrobun-dev --skill electrobun-devインストール後、Claude Code で/electrobun-devを入力して読み込まれたか確認します。
詳細
Electrobun 開発モード
コマンド
electrobun dev # build (dev env) once, then launch app
electrobun dev --watch # build, launch, then watch for changes and rebuild+relaunch
package.json から簡略記法を使用できます(標準テンプレート):
bun start # → electrobun dev
bun run dev # → electrobun dev --watch
electrobun dev の実行時の動作
electrobun.config.tsを読み込みます- 不足しているネイティブバイナリ(Bun、launcher、設定されている場合は WGPU/CEF)をダウンロードします
- 開発モードで
Bun.build()を使用してbuild.bun.entrypointをバンドルします(minify なし、ソースマップはインライン) - 各
build.views.*のエントリーポイントをバンドルします build.copyのファイルをビルド出力にコピーします- コード署名と公証をスキップします
- アプリバンドルを
build/dev-<os>-<arch>/に書き込みます - アプリを起動し、stdout/stderr をターミナルにストリーミングします
ウォッチモード(--watch)
初回のビルドと起動後、ウォッチモードは以下を監視します:
build.bun.entrypointを含むディレクトリ- 各
build.views.*のエントリーポイントを含むディレクトリ build.watchに指定されたディレクトリ(追加パス)build.copyに指定されたファイルのディレクトリ
デバウンス: 300ms — 短時間に連続して保存された場合、まとめて1回の再ビルドを行います。
自動的に無視されるもの: build/、artifacts/、node_modules/、および build.watchIgnore のパターン。
変更時: 実行中のアプリを終了 → 再ビルド → 再起動します。
追加の監視パス
// electrobun.config.ts
build: {
watch: ["src/shared/", "assets/"],
watchIgnore: ["src/**/*.test.ts", "src/**/*.spec.ts"],
}
CEF DevTools(Chromium インスペクター)
renderer: "cef" または defaultRenderer: "cef" を使用している場合、CEF レンダラーは以下で Chrome DevTools を公開します:
http://localhost:9222
アプリの実行中に、任意の Chrome/Chromium ブラウザーで開いてください。アクティブなレンダラーページがすべて一覧表示されます。クリックすると検査できます。
注:DevTools は dev ビルドでのみ使用できます。canary または stable では公開されません。
ネイティブ WebView のデバッグ(macOS)
renderer: "native"(WKWebView)の場合は、開発者向け機能を有効にします:
// In src/bun/index.ts — call openDevTools() on the BrowserView instance
const view = new BrowserView({ ... });
view.openDevTools(); // Opens Safari Web Inspector (uses private WKWebView _inspector API)
または Safari で、Develop → [Your App] → [webview name] の順に選択します。
デバッグのヒント
- コンソール出力:bun 側のコードからの
console.logはすべてターミナルに表示されます。レンダラー側のconsole.logは DevTools にのみ表示されます(ターミナルには表示されません)。 - RPC のトレース:リクエスト/メッセージハンドラーに
console.logを追加して、プロセス間の呼び出しをトレースします。 - ソースマップ:開発ビルドにはインラインソースマップが含まれます。スタックトレースには
.tsソースの行が示されます。 - 再読み込みが遅い場合:広範なパターンではなく、変更されたディレクトリのみを
build.watchに追加します。 - アプリが再起動しない場合:アプリのプロセスがファイルロックを保持している場合は、手動で終了します:
pkill -f "<AppName>"
ビルド出力(開発)
build/dev-macos-arm64/
└── <AppName>-dev.app/
└── Contents/
├── MacOS/
│ ├── launcher # native launcher
│ └── main.js # bundled bun entrypoint
├── Resources/
│ ├── <viewname>/ # bundled renderer
│ └── bun # bun runtime binary
└── Info.plist
コメント
Markdown 対応