Skip to main content
このガイドでは、WebpackやViteのようなバンドラーを使用せずに、Mellowtelをブラウザ拡張機能に統合する方法を説明します。代わりに、コンテンツスクリプトとサービスワーカーの両方で動作する単一の事前バンドルファイルを使用します。

プロジェクトセットアップ

基本的なブラウザ拡張機能の構造から始めます:

Mellowtelバンドルの取得

拡張機能用のmellowtel.jsファイルを取得するには、2つのオプションがあります:

オプション1: 事前バンドルファイルを使用

最も簡単な方法は、mellowtel-bundledリポジトリから事前バンドルされたmellowtel.jsファイルを使用することです。
  1. mellowtel-bundledリポジトリにアクセス
  2. mellowtel.jsファイルをダウンロード
  3. 拡張機能ディレクトリにコピー

オプション2: 自分でバンドルを生成

自分でバンドルを生成したい場合は、次の手順に従ってください:

一時的なバンドリングディレクトリを作成

Mellowtelをインストールしてバンドルを生成するための一時ディレクトリを作成します:
これは、バンドリングのためだけに使用するMellowtelパッケージを含む別のフォルダを作成します。

esbuildでMellowtelをバンドル

mellowtel-bundlingディレクトリ内から、サービスワーカーとコンテンツスクリプトの両方で動作する単一のバンドルを作成します:
このコマンドは:
  • node_modules/mellowtel/dist/index.jsからMellowtelソースを取得
  • すべての依存関係を単一のファイルにバンドル
  • 普遍的な互換性のためにグローバル名を持つIIFE形式を使用
  • デフォルトエクスポートをグローバルに利用可能にするフッターを追加
  • ブラウザ環境に最適化し、出力を最小化
  • バンドリングディレクトリにmellowtel.jsを作成

バンドルを拡張機能にコピー

esbuildコマンドを実行した後、生成されたファイルを拡張機能ディレクトリにコピーします:
出力ファイルだけが必要だったため、一時的なバンドリングディレクトリを削除できます:
これで、拡張機能フォルダには使用準備が整ったバンドルされたMellowtelファイルが含まれています。

マニフェストの設定(両方のオプション)

上記のどちらのオプションを選んだ場合でも、manifest.jsonを設定してコンテンツスクリプトにMellowtelバンドルを含めます:
重要:
  • "type": "module"フィールドは、サービスワーカーでのESモジュールインポートを有効にします。
  • コンテンツスクリプトの配列では、mellowtel.jscontent_script.jsより前にロードされる必要があります。これにより、コンテンツスクリプトが実行されるときにMellowtelのグローバル変数が利用可能になります。

拡張機能でMellowtelを使用

サービスワーカー(background.js)では、バンドルされたファイルをインポートします:
コンテンツスクリプトでは、Mellowtelはグローバル変数として利用可能です(インポートは不要で、マニフェスト経由でロードされます):

拡張機能のテスト

拡張機能をテストするには:
  1. Chromeでchrome://extensions/に移動(他のブラウザでも同様)
  2. 「デベロッパーモード」を有効にする
  3. 「パッケージされていない拡張機能を読み込む」をクリックし、拡張機能フォルダを選択
このアプローチにより、WebpackやViteのようなフルビルドシステムを設定する複雑さなしにMellowtelを使用する利点を得ることができます。