एक्सटेंशन सर्विस वर्कर की बुनियादी बातें

एक्सटेंशन सर्विस वर्कर, वेब सर्विस वर्कर से अलग तरीके से इंस्टॉल और अपडेट किए जाते हैं. इस पेज पर उन अंतरों के बारे में बताया गया है.

सर्विस वर्कर रजिस्टर करें

एक्सटेंशन सर्विस वर्कर को रजिस्टर करने के लिए, इसकी जानकारी manifest.json फ़ाइल के "background" फ़ील्ड में दें. "service_worker" कुंजी का इस्तेमाल करें, जिससे सिर्फ़ एक JavaScript फ़ाइल के बारे में पता चलता है. वेब पेजों या वेब ऐप्लिकेशन के सर्विस वर्कर, सबसे पहले navigator में serviceWorker की सुविधा का पता लगाकर, फिर सुविधा की पहचान में register() को कॉल करके सर्विस वर्कर को रजिस्टर करते हैं. यह एक्सटेंशन के लिए काम नहीं करता है.

{
  "name": "Awesome Test Extension",
  ...
  "background": {
    "service_worker": "service-worker.js"
  },
  ...
}

स्क्रिप्ट इंपोर्ट करें

सर्विस वर्कर में स्क्रिप्ट इंपोर्ट करने के दो तरीके हैं: import स्टेटमेंट और importScripts() तरीका. ध्यान दें कि import() को अक्सर डाइनैमिक इंपोर्ट कहा जाता है. इसके साथ काम नहीं करता.

import स्टेटमेंट का इस्तेमाल करने के लिए, अपने मेनिफ़ेस्ट में "type" फ़ील्ड जोड़ें और "module" तय करें. उदाहरण के लिए:

  "background": {
    "service_worker": "service-worker.js",
    "type": "module"
  }

इसके बाद, import का इस्तेमाल सामान्य तरीके से करें. ध्यान दें कि दावे इंपोर्ट करने की सुविधा काम नहीं करती.

import { tldLocales } from './locales.js';

importScripts() का इस्तेमाल उसी तरह करें जैसे आप वेब सर्विस वर्कर में करते हैं.

importScripts('locales.js');

अपडेट करें

सर्विस वर्कर को अपडेट करने के लिए, Chrome वेब स्टोर पर अपने एक्सटेंशन का नया वर्शन प्रकाशित करें. सर्वर से अपने एक्सटेंशन को लोड करके, इस समस्या से बचा जा सकता है. सुरक्षा की वजहों से, मेनिफ़ेस्ट V3 रिमोट तरीके से होस्ट किए गए कोड के साथ काम नहीं करता. आपके सर्विस वर्कर को एक्सटेंशन पैकेज का हिस्सा होना चाहिए.