โมดูลที่แชร์คือคอลเล็กชันทรัพยากรที่ไม่มีสิทธิ์ซึ่งแชร์ระหว่างส่วนขยายได้ การใช้งานทั่วไปของโมดูลที่แชร์มีดังนี้
- เป็น API คุณสามารถเผยแพร่โมดูลที่แชร์ที่มอบ HTML, JS และทรัพยากรอื่นๆ เพื่อมอบ API ที่อัปเดตได้โดยไม่ขึ้นกับส่วนขยายที่จำเป็นต้องใช้ API ดังกล่าว
- เป็นการเพิ่มประสิทธิภาพการดาวน์โหลด โมดูลที่ใช้ร่วมกันมีทรัพยากรทั่วไปที่ส่วนขยายจำนวนมากใช้ ระบบจะดาวน์โหลดคีย์ดังกล่าวครั้งเดียวเมื่อมีการติดตั้งส่วนขยายที่เกี่ยวข้องเป็นครั้งแรก
ไฟล์ Manifest
โมดูลที่แชร์จะใช้ผ่านช่องไฟล์ Manifest 2 ช่อง ได้แก่ "export"
และ "import"
ส่งออก
ช่อง 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 ในรูทของส่วนขยายที่นำเข้า ตัวอย่างเช่น หากต้องการรวมสคริปต์ foo.js
จากโมดูลที่แชร์ที่มีรหัส "cccccccccccccccccccccc" ให้ใช้เส้นทางจากรูทของส่วนขยาย
<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">
หากส่วนขยายที่นำเข้ามีรหัส "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" URL แบบเต็มไปยังทรัพยากรในโมดูลที่แชร์จะมีลักษณะดังนี้
chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/
โปรดทราบว่า เนื่องจากทรัพยากรจากโมดูลที่แชร์วางซ้อนทับกับต้นทางของส่วนขยายการนำเข้า สิทธิ์ทั้งหมดที่ให้กับส่วนขยายการนำเข้าจึงพร้อมใช้งานสำหรับโค้ดในโมดูลที่แชร์ นอกจากนี้ โมดูลที่แชร์ยังสามารถเข้าถึงทรัพยากรในส่วนขยายที่นำเข้าได้โดยใช้เส้นทางสัมบูรณ์
ติดตั้ง / ถอนการติดตั้ง
โมดูลที่แชร์จะได้รับการติดตั้งจาก Chrome เว็บสโตร์โดยอัตโนมัติเมื่อส่วนขยายที่เกี่ยวข้องจำเป็น และจะถอนการติดตั้งโดยอัตโนมัติเมื่อส่วนขยายสุดท้ายที่อ้างอิงอยู่ หากต้องการอัปโหลดส่วนขยายที่ใช้โมดูลที่แชร์ โมดูลที่แชร์จะต้องเผยแพร่ใน Chrome เว็บสโตร์ และต้องไม่มีการจำกัดการใช้โมดูลที่แชร์ตามรายการที่อนุญาต
ระหว่างการพัฒนา คุณจะต้องติดตั้งโมดูลที่แชร์ที่ส่วนขยายใช้ด้วยตนเอง การติดตั้งอัตโนมัติจะไม่เกิดขึ้นกับส่วนขยายที่โหลดจากแหล่งที่ไม่รู้จักหรือโหลดเป็นส่วนขยายที่คลายการแพคข้อมูล สำหรับโมดูลที่แชร์ที่คลายการแพคข้อมูลไว้ในเครื่อง คุณต้องใช้ช่องคีย์เพื่อให้แน่ใจว่าโมดูลที่แชร์ใช้รหัสที่ถูกต้อง