对比
让我们来对比一下 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。 ↩︎ ↩︎ ↩︎ ↩︎