ماژول های مشترک

ماژول‌های مشترک مجموعه‌ای از منابع بدون مجوز هستند که می‌توانند بین برنامه‌های افزودنی به اشتراک گذاشته شوند. کاربردهای رایج ماژول های اشتراکی عبارتند از:

  • به عنوان یک API. شما می‌توانید یک ماژول به اشتراک گذاشته شده را توزیع کنید که می‌تواند HTML، JS و منابع دیگر را برای ارائه یک API فراهم کند که می‌تواند مستقل از افزونه‌های وابسته به آن به‌روزرسانی شود.
  • به عنوان بهینه سازی دانلود. ماژول اشتراکی حاوی منابع مشترکی است که توسط بسیاری از برنامه های افزودنی استفاده می شود. یک بار دانلود می شود، اولین باری که یک برنامه افزودنی وابسته نصب می شود.

آشکار

ماژول های مشترک از طریق دو فیلد مانیفست استفاده می شوند: "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 از یک ماژول مشترک با شناسه "cccccccccccccccccccccccccccccccc"، از این مسیر از ریشه برنامه افزودنی خود استفاده کنید:

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

اگر پسوند واردکننده دارای شناسه "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" باشد، URL کامل منابع موجود در ماژول مشترک است:

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

توجه داشته باشید که از آنجایی که منابع از ماژول های اشتراکی در مبدا برنامه افزودنی واردکننده قرار می گیرند، تمام امتیازات اعطا شده به برنامه افزودنی واردکننده برای کدنویسی در ماژول های مشترک در دسترس هستند. همچنین، ماژول مشترک می‌تواند با استفاده از مسیرهای مطلق به منابع موجود در پسوند واردکننده دسترسی پیدا کند.

نصب / حذف نصب

یک ماژول اشتراک‌گذاری شده به‌طور خودکار از فروشگاه وب Chrome در صورت نیاز توسط یک برنامه افزودنی وابسته نصب می‌شود و زمانی که آخرین برنامه افزودنی که به آن اشاره می‌کند حذف نصب شود، به‌طور خودکار حذف نصب می‌شود. برای آپلود افزونه‌ای که از ماژول مشترک استفاده می‌کند، ماژول اشتراک‌گذاری شده باید در فروشگاه وب Chrome منتشر شود و برنامه افزودنی نباید از طریق فهرست مجازش از استفاده از ماژول مشترک محدود شود.

در طول توسعه، باید هر ماژول مشترکی را که از برنامه افزودنی خود استفاده می کند، به صورت دستی نصب کنید. نصب خودکار برای افزونه هایی که به صورت جانبی بارگذاری می شوند یا به عنوان افزونه های بسته بندی نشده بارگذاری می شوند، انجام نمی شود. برای ماژول‌های مشترک نصب‌شده و بدون بسته‌بندی محلی، باید از فیلد کلید استفاده کنید تا مطمئن شوید که ماژول‌های مشترک از شناسه‌های صحیح استفاده می‌کنند.