शेयर किए गए मॉड्यूल

शेयर किए गए मॉड्यूल ऐसे संसाधनों का बिना अनुमति वाले संग्रह हैं जिन्हें इनके बीच शेयर किया जा सकता है एक्सटेंशन. शेयर किए गए मॉड्यूल के सामान्य इस्तेमाल ये हैं:

  • एपीआई के तौर पर. एक ऐसा शेयर मॉड्यूल डिस्ट्रिब्यूट किया जा सकता है जिससे एचटीएमएल, JS, और अन्य संसाधन इन कामों के लिए उपलब्ध कराए जा सकते हैं एक ऐसा एपीआई उपलब्ध कराएं जिसे उस एक्सटेंशन पर निर्भर अलग से अपडेट किया जा सके.
  • डाउनलोड ऑप्टिमाइज़ेशन के तौर पर. शेयर मॉड्यूल में कई एक्सटेंशन के ज़रिए इस्तेमाल किए जाने वाले सामान्य संसाधन शामिल होते हैं. कोई निर्भर एक्सटेंशन पहली बार इंस्टॉल होने पर, वह एक बार डाउनलोड हो जाता है.

मेनिफ़ेस्ट

शेयर किए गए मॉड्यूल का इस्तेमाल दो मेनिफ़ेस्ट फ़ील्ड की मदद से किया जाता है: "export" और "import".

एक्सपोर्ट करें

एक्सपोर्ट फ़ील्ड से पता चलता है कि एक्सटेंशन एक शेयर मॉड्यूल है, जो अपने संसाधनों को एक्सपोर्ट करता है:

{
  "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 स्क्रिप्ट को शामिल करने के लिए आईडी "ccccccccFCCcccccccc चलाने गाने)", अपने एक्सटेंशन के रूट से इस पाथ का इस्तेमाल करें:

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

अगर इंपोर्ट करने वाले एक्सटेंशन का आईडी "aaaaaaaaaaaaaaaaaaaaaaaaaa" है, तो रिसॉर्स का पूरा यूआरएल शेयर किए गए मॉड्यूल में:

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

ध्यान दें कि शेयर किए गए मॉड्यूल से मिले संसाधन, इंपोर्ट करने की शुरुआत में जोड़े गए हैं एक्सटेंशन के साथ-साथ, आयात एक्सटेंशन को दिए गए सभी अधिकार, साझा एक्सटेंशन में कोड के लिए उपलब्ध होते हैं. मॉड्यूल. साथ ही, शेयर किया गया मॉड्यूल ऐब्सलूट पाथ का इस्तेमाल करें.

इंस्टॉल करें / अनइंस्टॉल करें

Chrome Web Store से शेयर किया गया मॉड्यूल अपने-आप इंस्टॉल हो जाता है. ऐसा तब होता है, जब किसी डिपेंडेंट एक्सटेंशन की ज़रूरत होती है. जब आखिरी एक्सटेंशन अनइंस्टॉल किया जाता है, तो वह अपने-आप अनइंस्टॉल हो जाता है. शेयर किए गए मॉड्यूल का इस्तेमाल करने वाले किसी एक्सटेंशन को अपलोड करने के लिए, शेयर किए गए मॉड्यूल को Chrome वेब स्टोर और एक्सटेंशन को अनुमति वाली सूची में शामिल है.

डेवलपमेंट के दौरान, आपको शेयर किए गए ऐसे सभी मॉड्यूल मैन्युअल तरीके से इंस्टॉल करने होंगे जिनका इस्तेमाल आपका एक्सटेंशन करता है. अपने-आप इंस्टॉल होने की सुविधा, उन एक्सटेंशन के लिए लागू नहीं होती जो अलग से लोड होते हैं या जिन्हें पैक न किए गए के तौर पर लोड किया जाता है एक्सटेंशन. डिवाइस पर इंस्टॉल किए गए और पैक नहीं किए गए शेयर किए गए मॉड्यूल के लिए, आपको key फ़ील्ड का इस्तेमाल करना होगा पक्का करें कि शेयर किए गए मॉड्यूल सही आईडी का इस्तेमाल करें.