共用模組是無權限的資源集合,可與其他擴充功能和應用程式共用。共用模組的常見用途如下:
- 做為 API。您可以發布可提供 HTML、JS 和其他來源的共用模組來提供 API,且該 API 可單獨更新,不受依附於該模組的擴充功能影響。這對於執行階段和遊戲引擎而言非常實用,因為應用程式在共用模組程式碼上執行的資料酬載通常較少。
- 完美下載共用模組包含許多擴充功能使用的常見資源。只會在首次安裝依附擴充功能時下載一次。
資訊清單
共用模組是透過以下兩個資訊清單欄位使用:匯出和匯入。
「export」欄位表示擴充功能是匯出其資源的共用模組:
{
"version": "1.0",
"name": "My Shared Module",
"export": {
// Optional list of extension IDs explicitly allowed to
// import this Shared Module's resources. If no allowlist
// is given, all extensions are allowed to import it.
"allowlist": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
]
}
// Note: no permissions are allowed in Shared Modules
}
擴充功能和應用程式會使用 import 欄位,宣告其依附於特定共用模組的資源:
{
"version": "1.0",
"name": "My Importing Extension",
...
"import": [
{"id": "cccccccccccccccccccccccccccccccc"},
{"id": "dddddddddddddddddddddddddddddddd"
"minimum_version": "0.5" // optional
},
]
}
存取資源
共用模組資源可透過匯入擴充功能根目錄中的保留路徑 _modules/SHARED_MODULE_ID 存取。舉例來說,如要納入 ID 為「cccccccccccccccc」的共用模組提供的「foo.js」指令碼 ,請使用擴充功能的根層級路徑:
<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">
如果匯入擴充功能的 ID 為「aaaaaaaaaaaaaaaaaaaaaaaaa」,則共用模組中資源的完整網址為:
chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/
請注意,由於共用模組的資源會重疊至匯入擴充功能的來源,因此共用模組中的程式碼可使用授予匯入擴充功能的所有權限。此外,共用模組可以使用絕對路徑存取匯入擴充功能中的資源。
安裝 / 解除安裝
如有需要,系統會自動從 Chrome 線上應用程式商店安裝共用模組,並在最後一個參照該模組的擴充功能解除安裝時自動解除安裝。 如要上傳使用共用模組的擴充功能,共用模組必須在 Chrome 線上應用程式商店中發布,且其許可清單不得禁止使用共用模組。
在開發期間,您必須手動安裝擴充功能使用的所有共用模組。如果是側載或以未封裝擴充功能載入的擴充功能,系統不會自動安裝。若是安裝在本機的未封裝共用模組,您必須使用 key 欄位來確保共用模組使用正確的 ID。