Skip to main content
以明確的瀏覽器目標工作流程,從同一份擴充功能程式碼執行 Chrome、Edge、Firefox 與自訂執行檔。

Chrome 擴充功能開發

要開發 Chrome 擴充功能,以 chrome 為目標(預設的 Chromium 執行檔則是 chromium):extension dev --browser=chrome。Extension.js 會把擴充功能載入到全新且隔離的設定檔中,並套用一組合理的 Chrome 啟動旗標,讓重新載入行為可預期。

Firefox 擴充功能開發

要開發 Firefox 擴充功能,以 firefox 為目標:extension dev --browser=firefox。Manifest V3 的 background script 會編譯成非常駐的 scripts 陣列(Firefox 不使用 service_worker),而 Firefox 偏好設定則取代了 Chromium 的 chrome://flags 概念。請參見 瀏覽器偏好設定

Edge 擴充功能開發

要開發 Edge 擴充功能,以 edge 為目標:extension dev --browser=edge。Edge 共用 Chromium 引擎,大多數旗標與 API 都與 Chrome 相同,但 Extension.js 仍會輸出獨立的 dist/edge 產物以供散布。

跨瀏覽器擴充功能開發

要進行跨瀏覽器擴充功能開發,可在一個指令中執行多個目標(extension dev --browser=chrome,firefox),並將瀏覽器差異維持在 以瀏覽器前綴的 manifest 欄位 中。一個專案、一份 manifest.json,各瀏覽器各自的輸出。完整流程請參見 跨瀏覽器相容性

該先讀什麼

實務目標策略

  1. 日常檢查使用具名目標(chromeedgefirefox)。
  2. 發布前驗證使用逗號分隔的多目標。
  3. 只有在需要自訂執行檔時才使用引擎目標。
  4. 將瀏覽器差異維持在以瀏覽器前綴的 manifest 欄位中。

後續步驟

影片導覽