為什麼這很重要
瀏覽器在 manifest 的關鍵領域仍有差異,例如背景設定與廠商相關的中繼資料。透過帶前綴的欄位,你可以保留一份來源manifest.json,同時為 Chromium 家族與 Firefox 家族目標產出對應正確的輸出。
運作方式
Extension.js 會掃描 manifest 鍵值,並針對所選的瀏覽器解析帶前綴的條目:- Chromium 家族目標(
chrome、edge、chromium-based)會解析:chromium:、chrome:、edge: - Gecko 家族目標(
firefox、gecko-based)會解析:firefox:、gecko:
適用 Chromium 系瀏覽器(Chrome、Edge…)
適用 Firefox
service_worker 只會出現在 Chromium 家族的輸出中,同時為 Firefox 輸出保留 background.scripts。
支援的前綴對應表:
| 前綴 | 套用於下列目標瀏覽器 |
|---|---|
chromium: | chrome、edge、chromium-based |
chrome: | chrome、chromium-based |
edge: | edge、chromium-based |
firefox: | firefox、gecko-based、firefox-based |
gecko: | firefox、gecko-based、firefox-based |
permissions、content_scripts 與 background。
最佳實務
- 共用預設值不加前綴:把共用欄位放在一般的 manifest 鍵中,只對瀏覽器專屬的差異加上前綴。
- 僅在行為分歧時使用前綴:當執行階段需求不同時才使用瀏覽器前綴。
- 在持續整合(CI)中為每個目標分別建置:產生並驗證每個瀏覽器的輸出(
dist/<browser>),及早抓出相容性回歸。 - 以 MDN 驗證:在加入只支援某瀏覽器的設定前,先用 MDN Web Docs 確認支援度。

