Skip to main content
瀏覽器擴充功能框架負責瀏覽器不會處理的工作:為每個擴充功能介面編譯 TypeScript 與現代 JavaScript、把 manifest 連結到實際的輸出檔案、在開發期間重新載入 service worker 與 content script,並產出各瀏覽器專屬的建置結果。本頁會比較目前活躍的選項,讓你在資訊充足的情況下做出選擇。

各個框架

有兩項結構性的差異,比任何單一功能列都更值得關注:
  • manifest 放在哪裡。 Extension.js 讀取你的 manifest.json,並編譯它所宣告的所有內容。WXT 與 Plasmo 則是從檔案慣例與設定產生 manifest。CRXJS 雖然會讀取 manifest,但會透過 Vite 的 plugin API 解析,這也是為什麼打包工具升級可能讓它中斷(參見 Vite 8 的 fileName 錯誤)。
  • 由誰掌控打包工具。 包裝通用打包工具的框架,就會繼承該打包工具的破壞性變更。Extension.js 把打包工具視為內部細節:你永遠不會去設定它,升級的問題由框架負責,而不是你。

詳細比較與遷移指南

不需投入即可試用

只要一行指令,就能執行任何擴充功能範本,或 GitHub 上任何擴充功能的儲存庫:
你的元件、chrome.* 呼叫與樣式都能從任何這些框架延續過來;遷移指南 涵蓋需要調整的串接細節。