各個框架
有兩項結構性的差異,比任何單一功能列都更值得關注:
- manifest 放在哪裡。 Extension.js 讀取你的
manifest.json,並編譯它所宣告的所有內容。WXT 與 Plasmo 則是從檔案慣例與設定產生 manifest。CRXJS 雖然會讀取 manifest,但會透過 Vite 的 plugin API 解析,這也是為什麼打包工具升級可能讓它中斷(參見 Vite 8 的 fileName 錯誤)。 - 由誰掌控打包工具。 包裝通用打包工具的框架,就會繼承該打包工具的破壞性變更。Extension.js 把打包工具視為內部細節:你永遠不會去設定它,升級的問題由框架負責,而不是你。
詳細比較與遷移指南
- Extension.js vs WXT:最相近的比較,按維度逐項分析。
- 從 CRXJS 遷移:一般專案約十分鐘完成的逐步流程。
- 修正:Content script fileName 為 undefined:CRXJS + Vite 8 的建置錯誤與解法。
- 從 Plasmo 遷移:慣例對應到 manifest、環境變數與 CSUI。
不需投入即可試用
只要一行指令,就能執行任何擴充功能範本,或 GitHub 上任何擴充功能的儲存庫:chrome.* 呼叫與樣式都能從任何這些框架延續過來;遷移指南 涵蓋需要調整的串接細節。
