この記事は Chrome の拡張機能の概要を知っている人向けです
すごく良い記事があったので拝借
その中でも wxt が nuxt ライクで使いやすいとのことで即決
インストールと起動
$ npx wxt@latest init <project-name>
wxt@0.19.11
Ok to proceed? (y) y
ℹ Initalizing new project 18:16:12
✔ Choose a template › vue
✔ Package Manager › npm
$ cd <project-name>
$ npm install
$ npm run dev
=> なんか開く
npm run dev を実行すると、自動的にブラウザが開く
何もせずに、この拡張機能がインストールされた状態の Chronium ブラウザが使える!!
Chrome へ登録
とは言っても、通常使用の Chrome で動作確認を取りたいと思う
そしたら .output/dist を Chrome の拡張に追加する
chrome://extensions/
「デベロッパーモード」をONに、「パッケージ化されていない拡張機能を読み込む」
こちらに .output/chrome-mv3 のフォルダを設定する
mac の場合、
Command + Shift + .で.outputを表示することができる
すると登録される とても簡単
このライブラリ、なんと HMR に対応してるので、リロードとかせずに更新される
もし調子が悪かったら、以下の「くるくる矢印」か「更新」を押すと良い
権限など manifest.json を書き換える必要がある場合、押さないと変わらないことが多い
フォルダ概念
Chrome の拡張は大きく三種類の概念、ファイルに分かれる
entrypoints/popup/main.ts
ポップアップで使用されるコード
先ほど右上のアイコンから表示させた画面が該当する
entrypoints/popup/background.ts
Chromeの裏側で動くコード
時間経過の処理だったり、ブラウザのAPIを使う時に利用する
entrypoints/popup/content.ts
特定のページを開い際に実行するコード
ページ自体の改造もできるし、ポップアップに情報を渡したり、データを保存したりできる
それぞれは相互に接続可能なので、機能を分割して組み合わせて作成する
manifest.json どこ...?
manifest は wxt.config.ts に書くらしい
ただ、ほとんどのマニュフェスト情報は、コードから自動的に回収してくれるみたい
面白いライブラリだぁ
storage 権限の例を下に載せる
export default defineConfig({
modules: ['@wxt-dev/module-vue'],
manifest: {
permissions: [
'storage',
'unlimitedStorage',
],
},
})
おわりに
簡単になったね... ![]()



