chrome-extension-dev
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseChrome Extension Dev
Chrome 扩展开发
ブラウザ拡張機能開発の包括的ガイド。
浏览器扩展开发的全面指南。
When to Use
适用场景
- ブラウザ拡張機能を作りたい、Chrome拡張、browser extension
- WXT フレームワークでの開発
- Content Script / Service Worker の実装
- Chrome API(tabs, storage, cookies等)の使用
- Manifest V3 への対応・移行
- 想要开发浏览器扩展、Chrome扩展、browser extension
- 使用 WXT 框架进行开发
- 实现 Content Script / Service Worker
- 使用 Chrome API(tabs、storage、cookies等)
- 适配或迁移至 Manifest V3
推奨技術スタック(2025/2026)
推荐技术栈(2025/2026)
| カテゴリ | 推奨 |
|---|---|
| フレームワーク | WXT (Vite ベース) |
| フロントエンド | React 18+ / Vue 3 / Svelte |
| 言語 | TypeScript |
| スタイリング | Tailwind CSS |
| UIコンポーネント | shadcn/ui / Mantine |
| 状態管理 | Zustand / Jotai |
| テスト | Vitest (ユニット) + Playwright (E2E) |
| 类别 | 推荐 |
|---|---|
| 框架 | WXT (基于Vite) |
| 前端 | React 18+ / Vue 3 / Svelte |
| 语言 | TypeScript |
| 样式 | Tailwind CSS |
| UI组件 | shadcn/ui / Mantine |
| 状态管理 | Zustand / Jotai |
| 测试 | Vitest(单元测试) + Playwright(端到端测试) |
WXT クイックスタート
WXT 快速入门
bash
undefinedbash
undefined新規プロジェクト作成
创建新项目
npm create wxt@latest
npm create wxt@latest
テンプレート指定
指定模板
npm create wxt@latest -- --template react-ts
npm create wxt@latest -- --template vue-ts
npm create wxt@latest -- --template react-ts
npm create wxt@latest -- --template vue-ts
開発コマンド
开发命令
npm run dev # HMR付き開発サーバー
npm run build # プロダクションビルド
npm run zip # ストア提出用パッケージ
undefinednpm run dev # 带HMR的开发服务器
npm run build # 生产构建
npm run zip # 用于商店提交的打包文件
undefinedプロジェクト構成
项目结构
project/
├── entrypoints/ # 自動検出エントリポイント
│ ├── background.ts # Service Worker
│ ├── content.ts # Content Script
│ ├── popup/ # Popup UI
│ │ ├── index.html
│ │ └── main.tsx
│ └── options/ # Options Page
├── components/ # 自動インポートUIコンポーネント
├── utils/ # 自動インポートユーティリティ
├── public/ # 静的アセット(icon等)
├── wxt.config.ts # WXT設定
└── package.jsonproject/
├── entrypoints/ # 自动检测的入口点
│ ├── background.ts # Service Worker
│ ├── content.ts # Content Script
│ ├── popup/ # Popup UI
│ │ ├── index.html
│ │ └── main.tsx
│ └── options/ # 选项页面
├── components/ # 自动导入的UI组件
├── utils/ # 自动导入的工具函数
├── public/ # 静态资源(图标等)
├── wxt.config.ts # WXT配置
└── package.json主要 Chrome API
主要 Chrome API
| API | 用途 | 権限 |
|---|---|---|
| タブ操作 | |
| データ永続化 | |
| メッセージング | なし |
| スクリプト/CSS注入 | |
| Cookie操作 | |
| DOM操作(SW内) | |
→ 詳細: references/chrome-api.md
| API | 用途 | 权限 |
|---|---|---|
| 标签页操作 | |
| 数据持久化 | |
| 消息通信 | 无 |
| 脚本/CSS注入 | |
| Cookie操作 | |
| DOM操作(Service Worker内) | |
→ 详情: references/chrome-api.md
Manifest V3 制限事項
Manifest V3 限制事项
| 制限 | 対処法 |
|---|---|
| 30秒タイムアウト | |
| DOMアクセス不可 | |
| 永続化なし | |
| eval()禁止 | 事前にバンドル |
| リモートコード禁止 | 全コードをバンドル |
→ 詳細: references/manifest-v3.md
| 限制 | 解决方法 |
|---|---|
| 30秒超时 | 使用 |
| 无法访问DOM | 使用 |
| 无持久化 | 使用 |
| 禁止eval() | 提前打包 |
| 禁止远程代码 | 打包所有代码 |
→ 详情: references/manifest-v3.md
権限変更時の注意
权限变更注意事项
⚠️ 重要:/permissions変更後は拡張機能の再読み込みでは不十分。 削除→再インストールが必要。host_permissions
⚠️ 重要: 修改/permissions后,仅重新加载扩展是不够的。 需要先删除扩展再重新安装。host_permissions
Key References
核心参考文档
| トピック | リファレンス |
|---|---|
| Chrome API 詳細 | references/chrome-api.md |
| Manifest V3 | references/manifest-v3.md |
| テスト | references/testing.md |
| 公開 | references/publishing.md |
| よくあるパターン | references/patterns.md |
| 主题 | 参考文档 |
|---|---|
| Chrome API 详情 | references/chrome-api.md |
| Manifest V3 | references/manifest-v3.md |
| 测试 | references/testing.md |
| 发布 | references/publishing.md |
| 常见开发模式 | references/patterns.md |
Done Criteria
完成标准
- WXT プロジェクト構成が正しい
- 必要な権限が に設定されている
wxt.config.ts - Manifest V3 制限を考慮した実装
- 開発モードで動作確認済み
- ビルドエラーがない
- WXT项目结构正确
- 所需权限已在中配置
wxt.config.ts - 开发时已考虑Manifest V3的限制
- 已在开发模式下验证功能正常
- 无构建错误