跳轉至

建立 2026-09-17 更新 2026-09-17

Manifest V3 設定檔

manifest.json 是每個 Chrome Extension 唯一必要的檔案,用宣告式的 JSON 告訴 Chrome:這個擴充功能叫什麼名字、需要哪些權限、有哪些頁面與程式碼。現行規格是 Manifest V3,Chrome 已不再接受新上架的 Manifest V2 擴充功能,本頁只介紹 V3。

常用欄位速查

欄位 用途 是否必要
manifest_version 固定填 3 必要
name 擴充功能名稱,顯示在 Chrome Web Store 與擴充功能清單 必要
version 版本號,格式如 1.0.0,每次上架更新都要遞增 必要
description 簡短描述功能 建議
icons 各尺寸圖示(16、48、128 px) 建議
action 工具列按鈕設定,含 default_popupdefault_icon 常用
background 指定 Background Service Worker 的 service_worker 檔案 依需求
content_scripts 宣告要注入哪些網頁、注入哪些 JS/CSS 依需求
permissions 使用 Chrome API 所需的權限,例如 storagetabs 依需求
host_permissions 允許存取的網站網域,例如 https://*.example.com/* 依需求
options_page / options_ui 設定頁面 依需求
web_accessible_resources 允許網頁直接載入的擴充功能內部檔案 依需求

範例:一個中型擴充功能的 manifest.json

manifest.json
{
  "manifest_version": 3,
  "name": "網頁筆記小幫手",
  "version": "1.2.0",
  "description": "在任何網頁上快速記筆記,並同步到雲端。",
  "icons": {
    "16": "icons/icon16.png",
    "48": "icons/icon48.png",
    "128": "icons/icon128.png"
  },
  "action": {
    "default_popup": "popup.html",
    "default_icon": "icons/icon48.png"
  },
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [
    {
      "matches": ["https://*/*"],
      "js": ["content.js"],
      "run_at": "document_idle"
    }
  ],
  "permissions": ["storage", "activeTab"],
  "host_permissions": ["https://*.example.com/*"],
  "options_page": "options.html"
}

這份設定檔宣告了工具列彈出視窗、一個常駐的 Background Service Worker、會注入所有網頁的 Content Script,以及讀寫本機資料與存取目前分頁所需的權限。每個元件的細節會在 核心架構 個別說明。

權限最小化原則

permissionshost_permissions 宣告的內容,會直接顯示在 Chrome Web Store 的安裝畫面上讓使用者確認,也是審核時的重點。只申請功能真正需要的權限:

  • 只在使用者主動點擊工具列時才需要存取當前分頁,用 "activeTab" 取代寬鬆的 "tabs""<all_urls>"
  • 不確定會不會用到的權限,先不要加;日後要用再更新版本補上,審核與使用者信任度都會更好。

完整的權限設計原則見 權限與安全性

下一步

理解設定檔的欄位後,前往 核心架構,看看 backgroundcontent_scriptsactionoptions_page 這些欄位背後對應的執行環境實際如何運作。