跳轉到主要內容
把擴充功能圖示宣告在可被 Extension.js 驗證、改寫並可預期輸出的 manifest 欄位中,藉此維持擴充功能品牌與 action UI 的一致性。 Extension.js 會處理 manifest.json 中的圖示路徑、解析 public/相對路徑、輸出圖示資產,並在開發期間監看圖示檔案。

範本範例

action

action template screenshot manifest.json 中宣告工具列圖示的 action 擴充功能。
npx extension@latest create my-extension --template=action
儲存庫:extension-js/examples/action

圖示能力

能力你會獲得的成果
支援 manifest 圖示欄位為受支援的擴充功能介面驗證並編譯圖示
路徑解析一致地處理相對與 public 根路徑的圖示
開發期 watch 更新在本地開發時重新編譯圖示變更
瀏覽器安全的輸出在擴充功能輸出中以穩定參考輸出圖示資產

支援的圖示欄位

Manifest 欄位預期檔案類型
action.default_icon.png, .jpg, .svg
browser_action.default_icon.png, .jpg, .svg
icons.png, .jpg, .svg
page_action.default_icon.png, .jpg, .svg
sidebar_action.default_icon.png, .jpg, .svg (*)
browser_action.theme_icons.png, .jpg, .svg
在某些瀏覽器中,sidebar_action.default_icon.svg 的支援目前仍不完整。在此情境使用 SVG 之前請先確認瀏覽器相容性。

manifest.json 中宣告圖示的範例

{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0.0",
  "icons": {
    "16": "icons/icon-16.png",
    "48": "icons/icon-48.png",
    "128": "icons/icon-128.png"
  },
  "action": {
    "default_icon": "icons/action-icon.png"
  }
}

輸出路徑

典型的圖示輸出:
icons/<filename>
browser_action/<theme-icon-filename>   # for theme_icons

路徑行為

  • Extension.js 從 manifest 資料夾解析相對的圖示路徑。
  • 開頭為 /public/... 的路徑會以擴充功能 public 根目錄的語義來解析。
  • Extension.js 可以監看 public 資料夾中的資產,而不必透過圖示功能本身重新輸出。

開發行為

  • 變更現有圖示檔案會觸發重新編譯。
  • 變更 manifest 的圖示進入點參考可能需要重新啟動開發伺服器。
  • 缺少必要的圖示檔會造成建置錯誤(某些可選的圖示群組會改為警告)。

最佳實務

  • 明確宣告 manifest 中的圖示欄位,而不是仰賴附帶的資產 import。
  • 提供多種圖示尺寸(163248128),讓瀏覽器各介面顯示更銳利。
  • 保持圖示檔名穩定,以減少開發期 manifest 的變動。
  • 刻意使用 public 根路徑,並測試最終 manifest 的輸出路徑。

後續步驟