dist/<browser>,也能為發佈產生 zip 封裝。
運作方式
執行正式建置:chromium,除非你覆寫它。
瀏覽器選擇
你可以鎖定特定的瀏覽器/引擎:chromeedgefirefoxchromiumchromium-basedgecko-based/firefox-based(別名)
chrome、edge 與 firefox 進行建置。
輸出結構
每個目標會寫入自己的資料夾:dist/chromedist/edgedist/firefoxdist/chromiumdist/chromium-baseddist/gecko-based
建置能力
產生 zip 檔
用--zip 為每個目標輸出產生發佈 zip:
name + version,例如:
my-extension-1.0.0.zip
dist/<browser> 資料夾內建立 my-release.zip。
包含原始碼封存檔
使用--zip-source 在發佈輸出旁邊另外產生原始碼封存檔。
--zip-source 會產生:
dist/<name>-<version>-source.zip
Firefox 商店審核的資料收集權限
自 2025 年 11 月起,addons.mozilla.org 會拒絕所有 manifest 中缺少browser_specific_settings.gecko.data_collection_permissions 的新擴充功能,Mozilla 也已宣佈該鍵將在 2026 年內對所有擴充功能強制生效。即使擴充功能不傳輸任何資料,也必須明確宣告:
extension create 鷹架產生的新專案已包含此宣告,firefox: 前綴讓它不會進入 Chromium 建置。正式環境的 Firefox 建置會在最終 manifest 缺少該鍵時發出警告,因此缺失宣告會在建置時暴露,而不是等到商店審查。
擴充功能確實傳輸使用者資料卻宣告 "none" 屬於違反 AMO 政策的行為。如果你的擴充功能收集或傳輸任何資料,請宣告對應的分類。分類清單見 Mozilla 的內建資料同意文件。Firefox 桌面版從 140 起(Android 從 142 起)解析該鍵,Manifest V2 與 V3 均可安全使用。
Polyfill 瀏覽器 API
如果你的程式碼依賴 Gecko 風格的browser.* API,又需要 Chromium 相容性,可以啟用 --polyfill:
最佳實務
- 在持續整合(CI)中為每個目標分別建置:把每個瀏覽器輸出視為獨立產物。
- 使用瀏覽器矩陣指令做一致性檢查:在同一個流水線步驟內及早抓到目標專屬問題。
- 有意識地進行封裝:用
--zip上架到應用商店,用--zip-source產生可追溯的原始碼產物。 - 保留明確的目標設定:用
extension.config.*的指令/瀏覽器預設值來確保建置可重現。

