โมดูลที่แชร์

โมดูลที่แชร์เป็นคอลเล็กชันทรัพยากรที่ไม่มีสิทธิ์ซึ่งแชร์ระหว่าง ส่วนขยายและแอปพลิเคชันต่างๆ การใช้งานโมดูลที่แชร์โดยทั่วไปมีดังนี้

  • เป็น API คุณสามารถแจกจ่ายโมดูลที่แชร์ซึ่งสามารถให้ HTML, JS และแหล่งที่มาอื่นๆ แก่ ให้ API ซึ่งสามารถอัปเดตแยกจากส่วนขยายที่อาศัย API ดังกล่าวได้ ประเภท มีประโยชน์สำหรับรันไทม์และเครื่องมือเกม ซึ่งแอปมักมีเพย์โหลดข้อมูลขนาดเล็กที่ทำงานบน โค้ดของโมดูลที่แชร์
  • เป็นการเพิ่มประสิทธิภาพการดาวน์โหลด โมดูลที่แชร์มีทรัพยากรทั่วไปที่ส่วนขยายจำนวนมากใช้ จะมีการดาวน์โหลดเพียงครั้งเดียว เมื่อมีการติดตั้งส่วนขยายที่เกี่ยวข้องเป็นครั้งแรก

ไฟล์ Manifest

ระบบจะใช้โมดูลที่แชร์ผ่านช่องไฟล์ Manifest 2 ช่อง ได้แก่ การส่งออกและนำเข้า

ช่อง 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
}

ส่วนขยายและแอปจะใช้ช่องนำเข้าเพื่อประกาศว่าต้องอาศัยทรัพยากรจาก โมดูลที่แชร์โดยเฉพาะ:

{
  "version": "1.0",
  "name": "My Importing Extension",
  ...
  "import": [
    {"id": "cccccccccccccccccccccccccccccccc"},
    {"id": "dddddddddddddddddddddddddddddddd"
     "minimum_version": "0.5" // optional
    },
  ]
}

การเข้าถึงทรัพยากร

ทรัพยากรโมดูลที่แชร์มีการเข้าถึงโดยเส้นทาง _modules/SHARED_MODULE_ID ที่จองไว้ในรูท ของส่วนขยายการนำเข้า เช่น หากต้องการรวมสคริปต์ "foo.js" จากโมดูลที่แชร์กับ รหัส "cccccccccccccccccccccccccccc" ใช้เส้นทางนี้จากรูทของส่วนขยาย

<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">

หากส่วนขยายการนำเข้ามีรหัส "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ให้ระบุ URL แบบเต็มไปยังทรัพยากร ในโมดูลที่แชร์ ได้แก่

chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/

โปรดทราบว่าเนื่องจากทรัพยากรจากโมดูลที่แชร์ถูกวางซ้อนอยู่ในต้นทางของการนำเข้า ส่วนขยาย สิทธิ์ทั้งหมดที่ให้แก่ส่วนขยายการนำเข้าจะพร้อมใช้งานสำหรับโค้ดใน โมดูล นอกจากนี้ โมดูลที่แชร์จะสามารถเข้าถึงทรัพยากรในส่วนขยายการนำเข้าโดยใช้ Absolute Path

ติดตั้ง / ถอนการติดตั้ง

Chrome เว็บสโตร์จะติดตั้งโมดูลที่แชร์โดยอัตโนมัติเมื่อจำเป็น ส่วนขยาย และถอนการติดตั้งโดยอัตโนมัติเมื่อมีการถอนการติดตั้งส่วนขยายล่าสุดที่อ้างอิงอยู่ ในการอัปโหลดส่วนขยายที่ใช้โมดูลที่แชร์ โมดูลที่แชร์จะต้องมีการเผยแพร่ใน Chrome เว็บสโตร์และส่วนขยายต้องไม่ถูกจำกัดไม่ให้ใช้โมดูลที่แชร์โดย จากรายการที่อนุญาต

ระหว่างการพัฒนา คุณจะต้องติดตั้งโมดูลที่แชร์ที่ส่วนขยายของคุณใช้ด้วยตนเอง การติดตั้งอัตโนมัติจะไม่เกิดขึ้นสําหรับส่วนขยายที่โหลดจากแหล่งที่ไม่รู้จักหรือโหลดแบบคลายการแพคข้อมูล ส่วนขยาย สำหรับโมดูลที่แชร์ที่ติดตั้งในเครื่องและคลายการแพคข้อมูล คุณต้องใช้ช่อง key เพื่อ ตรวจสอบว่าโมดูลที่แชร์ใช้รหัสที่ถูกต้อง