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。 ↩︎ ↩︎ ↩︎ ↩︎