0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トナカイ 一頭Advent Calendar 2024

Day 3

【crxjs/vite-plugin】chrome-extensionとReactの速攻開発設定

Last updated at Posted at 2024-12-03

crxjs/vite-pluginを使うモチベーション

chrome-extensionを作成する際、HTML、CSS、JS等を配置すれば作成できるのですが、これをReactで開発できたら、アイテムの反復表示やインタラクティブな操作を素早く実装できそうです。
それを可能にしてくれるプラグインが、crxjs/vite-pluginになります。

今回のサンプル
https://github.com/tonakai-it/extension-with-vite-sample

インストールする

pnpm create vite extension-with-vite-sample --template react-ts
cd extension-with-vite-sample && pnpm i

pnpm i -D @crxjs/vite-plugin@beta
pnpm i @types/chrome @extend-chrome/storage

設定例

vite.config.ts
...

+ import { crx, defineManifest } from "@crxjs/vite-plugin";
+ import { manifest } from './manifest'

export default defineConfig({
  plugins: [
    react(),
+   crx({ manifest: defineManifest(manifest) })
  ],
})

manifest.tsに切り出しています。型のサポートやコメント等付けられるので、jsonよりtsにしています。satisfiesなのは、一般的な型定義方法(変数名の後の:Type)だとcrxのdefineManifestと噛み合わせが悪かったからです。

manifest.ts
export const manifest = {
  manifest_version: 3,
  name: "extension-with-vite-sample",
  version: "0.0.1",
  action: {
    default_popup: "index.html",
  },
  options_page: "option.html",
} satisfies chrome.runtime.ManifestV3

develop or build

pnpm run dev
# OR
pnpm run build
  • distディレクトリをブラウザ拡張機能として読み込み
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?