Files
wxt/docs/guide/resources/compare.md
T
2024-10-22 08:35:23 -05:00

3.8 KiB

Compare

Lets compare the features of WXT vs Plasmo (another framework) and CRXJS (a bundler plugin).

Overview

  • - Full support
  • 🟡 - Partial support
  • - No support
Features WXT Plasmo CRXJS
Supports all browsers 🟡 1
MV2 Support 🟡 2
MV3 Support 🟡 2
Create Extension ZIPs
Create Firefox Sources ZIP
First-class TypeScript support
Entrypoint discovery 3 3
Inline entrypoint config 4
Auto-imports
Reusable module system
Supports all frontend frameworks 🟡 5
Framework specific entrypoints (like Popup.tsx) 🟡 6 7
Automated publishing
Remote Code Bundling (Google Analytics)
Unlisted HTML Pages
Unlisted Scripts
ESM Content Scripts 8
Dev Mode
.env Files
Opens browser with extension installed
HMR for UIs 🟡 9
Reload HTML Files on Change 🟡 10
Reload Content Scripts on Change 🟡 10
Reload Background on Change 🟡 10 🟡 10 🟡 10
Respects Content Script run_at 11
Built-in Wrappers
Storage 12
Messaging 12 12
Content Script UI 12
I18n

  1. As of v2.0.0-beta.23, but v2 stable hasn't been released yet. ↩︎

  2. Either MV2 or MV3, not both. ↩︎

  3. File based. ↩︎

  4. Entrypoint options all configured in manifest.json. ↩︎

  5. Only React, Vue, and Svelte. ↩︎

  6. .html, .ts, .tsx. ↩︎

  7. .html, .ts, .tsx, .vue, .svelte. ↩︎

  8. WIP, moving very slowly. Follow wxt-dev/wxt#357 for updates. ↩︎

  9. React only. ↩︎

  10. Reloads entire extension. ↩︎

  11. ESM-style loaders run asynchronously. ↩︎

  12. There is no built-in wrapper around this API. However, you can still access the standard APIs via chrome/browser globals or use any 3rd party NPM package. ↩︎