vue-web-extension を使って Chrome 拡張機能を開発する方法
はじめに
Vue.js を使って Chrome 拡張機能を開発できるテンプレートを探して、Kocal/vue-web-extension
を見つけたので、簡単な使い方のメモ。
追記: 続編として Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法 という記事も書いた。
TL;DR
vue init kocal/vue-web-extension my-extension
で初期化npm run build
でdist
配下にリリースファイル作成npm run watch
でファイル変更を検知してビルドsrc
配下を編集して拡張機能を開発
目次
環境・条件
1 | $ sw_vers |
詳細
セットアップ
@vue/cli-init
をインストール。
1 | $ npm i -g @vue/cli-init |
Usage に従い作業、まずは初期化。選択肢は各自で適当に。
1 | $ vue init kocal/vue-web-extension my-extension |
移動してパッケージインストール。
1 | $ cd my-extension/ |
npm run build
でビルド確認、成功すると dist
配下にファイルが生成される。
1 | $ npm run build |
chrome://extensions/
を開いて、「パッケージ化されていない拡張機能を読み込む」で dist
を指定。以下のポップアップが出れば OK。
拡張機能のアイコンをクリックすると、Hello world! のポップアップ。
ビルド監視
npm run watch
(もしくは npm run watch:dev
)でファイルに変更があった場合、即座にビルドが行われる。
1 | $ npm run watch |
npm run watch
した状態で src/background.js
を変更するとビルドが走る。
1 | global.browser = require('webextension-polyfill'); |
1 | Hash: a265d31a0cc8aa7a5a13 |
chrome://extensions/
で更新ボタンをクリックすると、変更後のポップアップが表示される(はず)。
ディレクトリ構成
メモレベル。色々と間違ってるかも & 拡張機能の開発歴が短いので用語の使い方がおかしいかも。
- content scripts は自前で用意。(当たり前だけど)
src/background.js
が background scripts のエントリポイント。src/popup/popup.js
,src/popup/App.vue
がポップアップ(拡張機能左クリック)のエントリポイント。src/options/options.js
,src/options/App.vue
がオプションページ(拡張機能右クリック → オプション)のエントリポイント。
まとめ
vue init kocal/vue-web-extension my-extension
で初期化npm run build
でdist
配下にリリースファイル作成npm run watch
でファイル変更を検知してビルドsrc
配下を編集して拡張機能を開発
その他・メモ
拡張機能の触り部分しか見てないので、もう少し試したら追記(or 別記事の作成)するかも。
追記: 続編として Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法 という記事も書いた。
参考文献
関連記事
- Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- Vue で子コンポーネントのメソッドをコールする
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chrome 拡張機能で background scripts から content scripts にメッセージを送信する
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア