mcpField
H
Hot Reloading for Chrome Extensions

Hot Reloading for Chrome Extensions

github.com/paulirish開発4.4k40 回インストール4 週間前に更新
リポジトリ

Hot Reloading for Chrome Extensions について

Hot Reloading for Chrome Extensions は、Manifest V3 拡張機能の開発者向けの、依存関係のないホットリロード手段です。Node.js のファイル監視機能が拡張機能側のリスナーに通知し、変更後に開いている拡張機能のタブを更新して拡張機能を再読み込みします。

主な機能

  1. 01Node.js によるプロジェクトファイル監視
  2. 02SSE による再読み込み通知
  3. 03開いている拡張機能タブの更新
  4. 04拡張機能ランタイムの再読み込み

活用シーン

  1. 01拡張機能開発中の再読み込み自動化
  2. 02編集後のオプションページやポップアップの更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/paulirish/dotfiles --skill hot-reloading-for-chrome-extensions

インストール後、Claude Code で/hot-reloading-for-chrome-extensionsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.claude/
settings.local.json
examples/
hot-reload-client.js
hot-reload-server.mjs

詳細

Chrome 拡張機能開発のホットリロード

Manifest V3(MV3)拡張機能向けに、依存関係ゼロのホットリロードシステムを提供します。このシステムでは、ソースファイルが変更されるたびに拡張機能とタブが自動的に再読み込みされるため、chrome://extensions で手動で再読み込みする必要がありません。

仕組み

このシステムは、サーバー側のウォッチャーとクライアント側のリスナーで構成されます。

  1. ウォッチャー(Node.js):開発者のマシン上で動作します。ネイティブの fs.watch を使ってプロジェクトディレクトリを監視し、Server-Sent Events(SSE)エンドポイント(/events)を公開します。ファイルの変更を検出すると、「reload」シグナルをブロードキャストします。
  2. クライアント(JavaScript):拡張機能のバックグラウンドサービスワーカーに挿入されます。EventSource を使ってウォッチャーサーバーに接続します。「reload」シグナルを受信すると、開いている拡張機能のタブ(オプションページ、ポップアップ)を再読み込みした後、chrome.runtime.reload() を呼び出して拡張機能自体を再読み込みします。

エージェント向け実装ガイド

現在のプロジェクトにホットリロードを実装するには、次の手順に従ってください。

1. ソースファイルをコピーする

スキルの examples/ ディレクトリから、次のファイルをプロジェクトのルートまたは指定した tools/ ディレクトリにコピーします。

  • examples/hot-reload-server.mjs -> hot-reload-server.mjs
  • examples/hot-reload-client.js -> hot-reload-client.js
2. バックグラウンドスクリプトを設定する

拡張機能のバックグラウンドサービスワーカー(例:service-worker.js)を更新し、クライアントスクリプトをインポートします。ファイルの1行目に記述してください。

importScripts('hot-reload-client.js');
3. 権限を更新する

manifest.json に、開発モードを検出するための management と、開いている拡張機能のページを再読み込みするための tabs が含まれていることを確認します。

{
  "permissions": [
    "management",
    "tabs"
  ]
}
4. 実行手順をユーザーに伝える

ターミナルでウォッチャーサーバーを起動するよう、ユーザーに伝えます。

node hot-reload-server.mjs

追加リソース

例

examples/ にある、動作する設定と実装スクリプト:

  • examples/hot-reload-server.mjs - Node.js のウォッチャーサーバー(プロジェクトにコピーします)。
  • examples/hot-reload-client.js - 拡張機能側のクライアント(プロジェクトにコピーします)。

コメント