Skip to content

对比

让我们来对比一下 WXT 与 Plasmo(另一个框架)和 CRXJS(一个打包插件)的功能。

总览

  • ✅ - 完全支持
  • 🟡 - 部分支持
  • ❌ - 不支持
功能WXTPlasmoCRXJS
维护状态🟡 [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)

  1. 目前处于维护模式,几乎没有维护者或新功能开发(见 wxt-dev/wxt#1404 (comment)_ ↩︎

  2. crxjs/chrome-extension-tools#974 ↩︎

  3. v2.0.0-beta.23 起,但 v2 正式版尚未发布。 ↩︎

  4. 仅支持 MV2 或 MV3,不支持同时支持。 ↩︎ ↩︎

  5. 基于文件。 ↩︎ ↩︎

  6. 入口配置全部在 manifest.json 中设置。 ↩︎

  7. 仅支持 React、Vue 和 Svelte。 ↩︎

  8. .html.ts.tsx↩︎

  9. .html.ts.tsx.vue.svelte↩︎

  10. 进行中,进展缓慢。关注 wxt-dev/wxt#357 获取最新进展。 ↩︎

  11. 仅支持 React。 ↩︎

  12. 会重载整个扩展。 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  13. ESM 风格加载器是异步运行的。 ↩︎

  14. 没有内置的 API 封装。但你仍然可以通过 chrome/browser 全局对象或第三方 NPM 包访问标准 API。 ↩︎ ↩︎ ↩︎ ↩︎