Skip to content

对比

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

概览

  • ✅ - 完全支持
  • 🟡 - 部分支持
  • ❌ - 不支持
功能特性WXTPlasmoCRXJS
持续维护🟡 [^n]🟡 [^m]
支持所有浏览器🟡 [^j]
MV2 支持🟡 [^a]
MV3 支持🟡 [^a]
创建扩展 ZIP 包
创建 Firefox 源码 ZIP 包
一流的 TypeScript 支持
入口点自动发现^b^b
内联入口点配置❌ [^i]
自动导入
可复用的模块系统
支持所有前端框架🟡 [^c]
框架特定的入口点(如 Popup.tsx🟡 ^d^e
自动化发布
远程代码打包(Google Analytics)
未列出的 HTML 页面
未列出的脚本
ESM 内容脚本❌ [^l]
开发模式
.env 文件
打开浏览器并自动安装扩展
UI 热模块替换(HMR)🟡 [^f]
HTML 文件变更时重新加载🟡 ^g
内容脚本变更时重新加载🟡 ^g
后台脚本变更时重新加载🟡 ^g🟡 ^g🟡 ^g
遵循内容脚本的 run_at 设置❌ [^h]
内置封装
存储❌ [^k]
消息通信❌ [^k]❌ [^k]
内容脚本 UI❌ [^k]
国际化(I18n)

[^a]: 只能支持 MV2 或 MV3 其中之一,不能同时支持。

[^c]: 仅支持 React、Vue 和 Svelte。

[^f]: 仅支持 React。

[^h]: ESM 风格的加载器以异步方式运行。

[^i]: 所有入口点选项都在 manifest.json 中配置。

[^j]: 截至 v2.0.0-beta.23 版本支持,但 v2 稳定版尚未发布。

[^k]: 该 API 没有内置封装。但你仍然可以通过 chrome/browser 全局变量访问标准 API,或使用任何第三方 NPM 包。

[^l]: 开发中,进展缓慢。关注 wxt-dev/wxt#357 获取更新。

[^m]: 参见 crxjs/chrome-extension-tools#974

[^n]: 似乎处于维护模式,几乎没有维护者或功能开发活动(参见 wxt-dev/wxt#1404 (comment)