0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【wxt + Vue3】Chromeの拡張機能を作ろう

Posted at

この記事は Chrome の拡張機能の概要を知っている人向けです

すごく良い記事があったので拝借

その中でも wxtnuxt ライクで使いやすいとのことで即決

インストールと起動

$ 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 ブラウザが使える!!

スクリーンショット 2024-10-13 21.17.45.png

Chrome へ登録

とは言っても、通常使用の Chrome で動作確認を取りたいと思う
そしたら .output/distChrome の拡張に追加する

chrome://extensions/

「デベロッパーモード」をONに、「パッケージ化されていない拡張機能を読み込む」

スクリーンショット 2024-10-11 18.31.04.png

こちらに .output/chrome-mv3 のフォルダを設定する

mac の場合、
Command + Shift + ..output を表示することができる

すると登録される とても簡単

スクリーンショット 2024-10-11 18.36.01.png

このライブラリ、なんと HMR に対応してるので、リロードとかせずに更新される

もし調子が悪かったら、以下の「くるくる矢印」か「更新」を押すと良い
権限など manifest.json を書き換える必要がある場合、押さないと変わらないことが多い

スクリーンショット 2024-10-11 18.41.04.png

フォルダ概念

Chrome の拡張は大きく三種類の概念、ファイルに分かれる

entrypoints/popup/main.ts

ポップアップで使用されるコード
先ほど右上のアイコンから表示させた画面が該当する

entrypoints/popup/background.ts

Chromeの裏側で動くコード
時間経過の処理だったり、ブラウザのAPIを使う時に利用する

entrypoints/popup/content.ts

特定のページを開い際に実行するコード
ページ自体の改造もできるし、ポップアップに情報を渡したり、データを保存したりできる

それぞれは相互に接続可能なので、機能を分割して組み合わせて作成する

manifest.json どこ...?

manifest は wxt.config.ts に書くらしい
ただ、ほとんどのマニュフェスト情報は、コードから自動的に回収してくれるみたい
面白いライブラリだぁ

storage 権限の例を下に載せる

wxt.config.ts
export default defineConfig({
  modules: ['@wxt-dev/module-vue'],

  manifest: {
    permissions: [
      'storage',
      'unlimitedStorage',
    ],
  },
})

おわりに

簡単になったね... :joy:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?