对比
让我们来对比一下 WXT 与 Plasmo(另一个框架)和 CRXJS(一个打包插件)的功能。
总览
- ✅ - 完全支持
- 🟡 - 部分支持
- ❌ - 不支持
| 功能 | WXT | Plasmo | CRXJS |
|---|---|---|---|
| 维护状态 | ✅ | 🟡 [1] | 🟡 [2] |
| 支持所有浏览器 | ✅ | ✅ | 🟡 [3] |
| 支持 MV2 | ✅ | ✅ | 🟡 [4] |
| 支持 MV3 | ✅ | ✅ | 🟡 [4] |
| 创建扩展 ZIP 包 | ✅ | ✅ | ❌ |
| 创建 Firefox 源码 ZIP 包 | ✅ | ❌ | ❌ |
| 一流的 TypeScript 支持 | ✅ | ✅ | ✅ |
| 入口文件自动发现 | ✅ [5] | ✅ [5] | ❌ |
| 内联入口配置 | ✅ | ✅ | ❌ [6] |
| 自动导入 | ✅ | ❌ | ❌ |
| 可复用模块系统 | ✅ | ❌ | ❌ |
| 支持所有前端框架 | ✅ | 🟡 [7] | ✅ |
框架特定入口(如 Popup.tsx) | 🟡 [8] | ✅ [9] | ❌ |
| 自动化发布 | ✅ | ✅ | ❌ |
| 远程代码打包(如 Google Analytics) | ✅ | ✅ | ❌ |
| 非公开 HTML 页面 | ✅ | ✅ | ✅ |
| 非公开脚本 | ✅ | ❌ | ❌ |
| ESM 内容脚本 | ❌ [10] | ❌ | ✅ |
| 开发模式 | |||
.env 文件 | ✅ | ✅ | ✅ |
| 启动浏览器并安装扩展 | ✅ | ❌ | ❌ |
| UI 热更新(HMR) | ✅ | 🟡 [11] | ✅ |
| HTML 文件变更自动刷新 | ✅ | 🟡 [12] | ✅ |
| 内容脚本变更自动刷新 | ✅ | 🟡 [12] | ✅ |
| 后台脚本变更自动刷新 | 🟡 [12] | 🟡 [12] | 🟡 [12] |
遵循内容脚本 run_at | ✅ | ✅ | ❌ [13] |
| 内置封装 | |||
| 存储 | ✅ | ✅ | ❌ [14] |
| 消息通信 | ❌ [14] | ✅ | ❌ [14] |
| 内容脚本 UI | ✅ | ✅ | ❌ [14] |
| 国际化(I18n) | ✅ | ❌ | ❌ |
目前处于维护模式,几乎没有维护者或新功能开发(见 wxt-dev/wxt#1404 (comment)_ ↩︎
自
v2.0.0-beta.23起,但 v2 正式版尚未发布。 ↩︎入口配置全部在
manifest.json中设置。 ↩︎仅支持 React、Vue 和 Svelte。 ↩︎
.html、.ts、.tsx。 ↩︎.html、.ts、.tsx、.vue、.svelte。 ↩︎进行中,进展缓慢。关注 wxt-dev/wxt#357 获取最新进展。 ↩︎
仅支持 React。 ↩︎
ESM 风格加载器是异步运行的。 ↩︎
没有内置的 API 封装。但你仍然可以通过
chrome/browser全局对象或第三方 NPM 包访问标准 API。 ↩︎ ↩︎ ↩︎ ↩︎