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

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

सर्विस वर्कर रजिस्टर करना

एक्सटेंशन सेवा वर्कर को रजिस्टर करने के लिए, 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 Web Store पर अपने एक्सटेंशन का नया वर्शन पब्लिश करें. सर्वर से एक्सटेंशन लोड करके, इस समस्या से नहीं बचा जा सकता. सुरक्षा वजहों से, मेनिफ़ेस्ट V3 में रिमोट तरीके से होस्ट किए गए कोड का इस्तेमाल नहीं किया जा सकता. आपका सर्विस वर्कर, एक्सटेंशन पैकेज का हिस्सा होना चाहिए.