workbox-cli

Workbox कमांड लाइन इंटरफ़ेस (workbox-cli पैकेज में शामिल) में Workbox नाम का एक Node.js प्रोग्राम होता है. इसे UNIX के साथ काम करने वाले कमांड लाइन एनवायरमेंट की Windows और macOS से चलाया जा सकता है. हुड के तहत, Workbox-cli, Workbox-build मॉड्यूल को रैप करता है और सुविधाजनक कॉन्फ़िगरेशन के साथ कमांड लाइन की बिल्ड प्रोसेस में Workbox को इंटिग्रेट करने का आसान तरीका देता है.

सीएलआई इंस्टॉल करें

नोड की मदद से सीएलआई इंस्टॉल करने के लिए, अपने टर्मिनल में नीचे दिया गया कमांड चलाएं:

npm install workbox-cli --global

सीएलआई मोड

सीएलआई में चार अलग-अलग मोड हैं:

  • wizard: अपने प्रोजेक्ट के लिए Workbox सेट अप करने के लिए सिलसिलेवार निर्देश.
  • generateSW: यह आपके लिए पूरा सर्विस वर्कर जनरेट करता है.
  • injectManifest: आपके प्रोजेक्ट में प्रीकैश करने के लिए ऐसेट इंजेक्ट करता है.
  • copyLibraries: Workbox लाइब्रेरी को किसी डायरेक्ट्री में कॉपी करें.

wizard

Workbox विज़र्ड, आपके लोकल डायरेक्ट्री के सेटअप के बारे में कई सवाल पूछता है. साथ ही, यह भी बताता है कि आपको कौनसी फ़ाइलें पहले से कैश मेमोरी में सेव करनी हैं. आपके जवाबों का इस्तेमाल, कॉन्फ़िगरेशन फ़ाइल जनरेट करने के लिए किया जाता है. इसे generateSW मोड में चलाते समय इस्तेमाल किया जा सकता है.

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

विज़र्ड चलाना शुरू करने के लिए:

npx workbox-cli wizard

Workbox CLI के विज़र्ड का स्क्रीनशॉट

generateSW

कॉन्फ़िगरेशन फ़ाइल (जैसे कि विज़र्ड से जनरेट की गई फ़ाइल) का इस्तेमाल करके, पूरा सर्विस वर्कर जनरेट करने के लिए Workbox CLI का इस्तेमाल किया जा सकता है.

बस यह निर्देश दें:

npx workbox-cli generateSW path/to/config.js

ऐसे डेवलपर जो Workbox की बिल्ट-इन प्रीकैशिंग और रनटाइम कैश मेमोरी से खुश हैं और जिन्हें अपने सर्विस वर्कर के व्यवहार को कस्टमाइज़ करने की ज़रूरत नहीं है उन्हें generateSW मोड इस्तेमाल करने का सुझाव दिया जाता है.

generateSW का इस्तेमाल कब करना चाहिए

  • आपको फ़ाइलों को प्री-कैश करना हो.
  • आपको रनटाइम को कैश मेमोरी में सेव करने की ज़रूरत पड़ती है.

generateSW का इस्तेमाल कब नहीं करना चाहिए

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

injectManifest

जो डेवलपर फ़ाइनल सर्विस वर्कर फ़ाइल पर ज़्यादा कंट्रोल चाहते हैं वे injectManifest मोड का इस्तेमाल कर सकते हैं. यह मोड मानता है कि आपके पास एक मौजूदा सर्विस वर्कर फ़ाइल है (जिसकी जगह की जानकारी config.js में दी गई है).

workbox injectManifest चलाने पर, यह आपकी सोर्स सर्विस वर्कर फ़ाइल में (डिफ़ॉल्ट रूप से precacheAndRoute(self.__WB_MANIFEST)) स्ट्रिंग खोजता है. यह खाली अरे को प्री-कैश करने के लिए यूआरएल की सूची से बदल देता है. साथ ही, config.js में कॉन्फ़िगरेशन के विकल्पों के आधार पर, सर्विस वर्कर फ़ाइल को उसके डेस्टिनेशन की जगह पर लिख देता है. आपके सोर्स सर्विस वर्कर के कोड में कोई बदलाव नहीं हुआ है.

इस मोड में Workbox का इस्तेमाल इस तरह किया जा सकता है:

npx workbox-cli injectManifest path/to/config.js

injectManifest का इस्तेमाल कब करना चाहिए

  • आप अपने सर्विस वर्कर पर ज़्यादा कंट्रोल चाहते हैं.
  • आपको फ़ाइलों को प्री-कैश करना हो.
  • आपको रूटिंग और रणनीतियों को पसंद के मुताबिक बनाना होगा.
  • आप अन्य प्लैटफ़ॉर्म सुविधाओं (जैसे वेब पुश) के साथ अपने सर्विस वर्कर का इस्तेमाल करना चाहते हैं.

injectManifest का इस्तेमाल कब नहीं करना चाहिए

  • आपको अपनी साइट में सर्विस वर्कर जोड़ने का सबसे आसान पाथ चाहिए.

copyLibraries

यह मोड तब काम का है, जब आपको injectManifest का इस्तेमाल करना है. साथ ही, सीडीएन का इस्तेमाल करने के बजाय, अपने ऑरिजिन पर होस्ट की गई Workbox लाइब्रेरी फ़ाइलों का इस्तेमाल करना है.

आपको इसे किसी ऐसे पाथ के साथ चलाना होगा, जिसमें फ़ाइलें लिखी जा सकें:

npx workbox-cli copyLibraries third_party/workbox/

प्रोसेस इंटिग्रेशन बनाएं

Workbox को 'मेरी बिल्ड प्रोसेस' के साथ इंटिग्रेट करना क्यों ज़रूरी है?

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

क्या बनाने की प्रोसेस के लिए workbox-cli ही सही विकल्प है?

अगर आपके पास मौजूदा बिल्ड प्रोसेस है, जो पूरी तरह से एनपीएम स्क्रिप्ट पर आधारित है, तो workbox-cli अच्छा विकल्प है.

अगर फ़िलहाल, वेबपैक का इस्तेमाल बिल्ड टूल के तौर पर किया जा रहा है, तो workbox-webback-plugin का इस्तेमाल करना एक बेहतर विकल्प है.

अगर Gulp, Grunt या Node.js पर आधारित अन्य बिल्ड टूल का इस्तेमाल किया जा रहा है, तो workbox-build को अपनी बिल्ड स्क्रिप्ट में इंटिग्रेट करना एक बेहतर विकल्प है.

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

सेटअप और कॉन्फ़िगरेशन

अपने लोकल प्रोजेक्ट के लिए, workbox-cli को डेवलपमेंट डिपेंडेंसी के तौर पर इंस्टॉल करने के बाद, मौजूदा बिल्ड प्रोसेस की एनपीएम स्क्रिप्ट के आखिर में workbox पर कॉल जोड़ा जा सकता है:

Package.json से:

{
  "scripts": {
    "build": "my-build-script && workbox <mode> <path/to/config.js>"
  }
}

<mode> को generateSW या injectManifest (आपके इस्तेमाल के उदाहरण के आधार पर) और <path/to/config.js> को अपने कॉन्फ़िगरेशन विकल्पों के पाथ से बदलें. हो सकता है कि आपका कॉन्फ़िगरेशन workbox wizard ने अपने-आप बनाया हो या मैन्युअल तरीके से इसमें बदलाव किया गया हो.

कॉन्फ़िगरेशन

generateSW के इस्तेमाल किए गए विकल्प

कॉन्फ़िगरेशन के विकल्पों का पूरा सेट, रेफ़रंस दस्तावेज़ में देखा जा सकता है.

injectManifest के इस्तेमाल किए गए विकल्प

कॉन्फ़िगरेशन के विकल्पों का पूरा सेट, रेफ़रंस दस्तावेज़ में देखा जा सकता है.