वर्कबॉक्स-बिल्ड

workbox-build मॉड्यूल, नोड पर आधारित बिल्ड प्रोसेस में इंटिग्रेट हो जाता है और पूरे सर्विस वर्कर को जनरेट कर सकता है. इसके अलावा, यह ऐसे एसेट की सूची भी जनरेट कर सकता है जिसे पहले से कैश मेमोरी में सेव किया गया हो. इसका इस्तेमाल मौजूदा सर्विस वर्कर में किया जा सकता है.

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

किस मोड का इस्तेमाल करना है

generateSW

generateSW मोड आपके लिए सर्विस वर्कर फ़ाइल बनाता है. यह कॉन्फ़िगरेशन विकल्पों की मदद से कस्टमाइज़ की जाती है और डिस्क पर लिख दी जाती है.

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

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

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

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

injectManifest

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

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

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

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

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

generateSW मोड

आप सबसे सामान्य कॉन्फ़िगरेशन विकल्पों का इस्तेमाल करके, नोड-आधारित बिल्ड स्क्रिप्ट में generateSW मोड का इस्तेमाल कर सकते हैं, जैसे:

// Inside of build.js:
const {generateSW} = require('workbox-build');

// These are some common options, and not all are required.
// Consult the docs for more info.
generateSW({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  navigateFallback: '...',
  runtimeCaching: [{
    // Routing via a matchCallback function:
    urlPattern: ({request, url}) => ...,
    handler: '...',
    options: {
      cacheName: '...',
      expiration: {
        maxEntries: ...,
      },
    },
  }, {
    // Routing via a RegExp:
    urlPattern: new RegExp('...'),
    handler: '...',
    options: {
      cacheName: '...',
      plugins: [..., ...],
    },
  }],
  skipWaiting: ...,
  swDest: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while generating a service worker:',
      warnings.join('\n')
    );
  }

  console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
});

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

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

injectManifest मोड

आप सबसे सामान्य कॉन्फ़िगरेशन विकल्पों का इस्तेमाल करके, नोड-आधारित बिल्ड स्क्रिप्ट में injectManifest मोड का इस्तेमाल कर सकते हैं, जैसे:

// Inside of build.js:
const {injectManifest} = require('workbox-build');

// These are some common options, and not all are required.
// Consult the docs for more info.
injectManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  swDest: '...',
  swSrc: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while injecting the manifest:',
      warnings.join('\n')
    );
  }

  console.log(`Injected a manifest which will precache ${count} files, totaling ${size} bytes.`);
});

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

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

अतिरिक्त मोड

हमें उम्मीद है कि generateSW या injectManifest ज़्यादातर डेवलपर की ज़रूरतों को पूरा करेगा. हालांकि, workbox-build के साथ काम करने वाला एक और मोड भी है, जो कुछ मामलों में सही हो सकता है.

getManifest मोड

यह सैद्धांतिक रूप से injectManifest मोड के जैसा है, लेकिन मेनिफ़ेस्ट को सोर्स सर्विस वर्कर फ़ाइल में जोड़ने के बजाय, यह मेनिफ़ेस्ट एंट्री का कलेक्शन दिखाता है. साथ ही, एंट्री की संख्या और कुल साइज़ की जानकारी भी देता है.

आप सबसे सामान्य कॉन्फ़िगरेशन विकल्पों का इस्तेमाल करके, नोड-आधारित बिल्ड स्क्रिप्ट में injectManifest मोड का इस्तेमाल कर सकते हैं, जैसे:

// Inside of build.js:
const {getManifest} = require('workbox-build');

// These are some common options, and not all are required.
// Consult the docs for more info.
getManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
}).then(({manifestEntries, count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while getting the manifest:',
      warnings.join('\n')
    );
  }

  // Do something with the manifestEntries, and potentially log count and size.
});

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

टाइप

BasePartial

प्रॉपर्टी

  • additionalManifestEntries

    (स्ट्रिंग|ManifestEntry)[] ज़रूरी नहीं

    बिल्ड कॉन्फ़िगरेशन के हिस्से के तौर पर जनरेट की गई एंट्री के साथ-साथ, ऐसी एंट्री की सूची जिन्हें प्री-कैश किया जाना है.

  • dontCacheBustURLsMatching

    RegExp ज़रूरी नहीं

    इससे मेल खाने वाली एसेट को उनके यूआरएल के ज़रिए खास तौर पर वर्शन माना जाएगा. साथ ही, प्रीकैश मेमोरी में जानकारी अपने-आप भरने के दौरान, एचटीटीपी कैश-बस्टिंग की प्रोसेस नहीं की जाएगी. हालांकि, यह ज़रूरी नहीं है, लेकिन यह सुझाव दिया जाता है कि अगर आपकी मौजूदा बिल्ड प्रोसेस में हर फ़ाइल नाम में पहले से ही [hash] वैल्यू डाली गई है, तो आपको एक RegExp देना होगा जो इसका पता लगा लेगा. ऐसा इसलिए, क्योंकि यह प्रीकैशिंग के दौरान खर्च होने वाली बैंडविथ को कम कर देगा.

  • manifestTransforms

    ManifestTransform[] ज़रूरी नहीं

    एक या एक से ज़्यादा फ़ंक्शन जिन्हें जनरेट किए गए मेनिफ़ेस्ट के क्रम में लागू किया जाएगा. अगर modifyURLPrefix या dontCacheBustURLsMatching के बारे में भी बताया गया है, तो पहले उससे जुड़े ट्रांसफ़ॉर्मेशन लागू किए जाएंगे.

  • maximumFileSizeToCacheInBytes

    नंबर ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: 2097152

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

  • modifyURLPrefix

    ऑब्जेक्ट ज़रूरी नहीं

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

    इस्तेमाल के उदाहरण:

    // Replace a '/dist/' prefix with '/', and also prepend
    // '/static' to every URL.
    modifyURLPrefix: {
      '/dist/': '/',
      '': '/static',
    }
    

BuildResult

टाइप

>&object

प्रॉपर्टी

  • filePaths

    स्ट्रिंग[]

GeneratePartial

प्रॉपर्टी

  • babelPresetEnvTargets

    स्ट्रिंग[] ज़रूरी नहीं है

    डिफ़ॉल्ट वैल्यू यह है: ["chrome >= 56"]

    सर्विस वर्कर बंडल को ट्रांसपाइल करते समय, babel-preset-env को पास किए जाने वाले टारगेट.

  • cacheId

    स्ट्रिंग ज़रूरी नहीं

    एक वैकल्पिक आईडी, जिसे कैश मेमोरी के नामों के पहले जोड़ा जाएगा. यह मुख्य तौर पर, लोकल डेवलपमेंट के लिए काम का होता है, जहां एक ही http://localhost:port ऑरिजिन से कई साइटें दिखाई जा सकती हैं.

  • cleanupOutdatedCaches

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

    क्या Workbox को पुराने और इसके साथ काम न करने वाले वर्शन से बनाए गए किसी भी प्री-कैश को पहचानने और मिटाने की कोशिश करनी चाहिए.

  • clientsClaim

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

    सर्विस वर्कर के चालू होते ही, उसे किसी भी मौजूदा क्लाइंट को कंट्रोल करना शुरू करना चाहिए या नहीं.

  • directoryIndex

    स्ट्रिंग ज़रूरी नहीं

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

  • disableDevLogs

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

  • ignoreURLParametersMatching

    RegExp[] ज़रूरी नहीं

    इस कैटगरी में मौजूद किसी भी RegExp से मेल खाने वाले खोज पैरामीटर के नाम, प्रीकैश मैच खोजने से पहले हटा दिए जाएंगे. यह तब फ़ायदेमंद होता है, जब आपके उपयोगकर्ता ऐसे यूआरएल के लिए अनुरोध करें जिनमें ट्रैफ़िक के सोर्स को ट्रैक करने के लिए इस्तेमाल किए गए यूआरएल पैरामीटर शामिल हों. अगर यह पैरामीटर उपलब्ध नहीं कराया गया है, तो डिफ़ॉल्ट वैल्यू [/^utm_/, /^fbclid$/] होती है.

  • importScripts

    स्ट्रिंग[] ज़रूरी नहीं है

    उन JavaScript फ़ाइलों की सूची जिन्हें जनरेट की गई सर्विस वर्कर फ़ाइल में importScripts() को भेजा जाना चाहिए. यह तब काम आता है, जब आप Workbox को टॉप-लेवल सर्विस वर्कर फ़ाइल बनाने की अनुमति देना चाहते हों, लेकिन आपको कुछ अतिरिक्त कोड शामिल करने की अनुमति देनी हो, जैसे कि पुश इवेंट लिसनर.

  • inlineWorkboxRuntime

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

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

  • मोड

    स्ट्रिंग ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: "प्रोडक्शन"

    अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो ऑप्टिमाइज़ किया गया सर्विस वर्कर बंडल बनाया जाएगा. इसमें डीबग करने की जानकारी शामिल नहीं होगी. अगर इसे यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो process.env.NODE_ENV वैल्यू का इस्तेमाल किया जाएगा. ऐसा न होने पर, वैल्यू वापस 'production' हो जाएगी.

  • navigateFallback

    स्ट्रिंग ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: शून्य

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

  • navigateFallbackAllowlist

    RegExp[] ज़रूरी नहीं

    रेगुलर एक्सप्रेशन का एक वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया navigateFallback व्यवहार किन यूआरएल पर लागू होता है. यह तब मददगार होता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाए. अगर navigateFallbackDenylist और navigateFallbackAllowlist, दोनों को कॉन्फ़िगर किया गया हो, तो ब्लॉकलिस्ट से पहले उदाहरण लागू हो जाएगा.

    ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल न करें वरना आपके उपयोगकर्ताओं को आपकी साइट नेविगेट करने में देरी हो सकती है.

  • navigateFallbackDenylist

    RegExp[] ज़रूरी नहीं

    रेगुलर एक्सप्रेशन का एक वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया navigateFallback व्यवहार किन यूआरएल पर लागू होता है. यह तब मददगार होता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाए. अगर navigateFallbackDenylist और navigateFallbackAllowlist, दोनों को कॉन्फ़िगर किया गया हो, तो ब्लॉकलिस्ट को प्राथमिकता दी जाएगी.

    ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल न करें वरना आपके उपयोगकर्ताओं को आपकी साइट नेविगेट करने में देरी हो सकती है.

  • navigationPreload

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

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

  • offlineGoogleAnalytics

    boolean|GoogleAnalyticsInitializeOptions optional

    डिफ़ॉल्ट वैल्यू यह है: false

    यह नीति कंट्रोल करती है कि ऑफ़लाइन Google Analytics के लिए सहायता शामिल की जाए या नहीं. true होने पर, workbox-google-analytics के initialize() पर किया गया कॉल आपके जनरेट किए गए सर्विस वर्कर में जुड़ जाएगा. अगर ऑब्जेक्ट को Object पर सेट किया जाता है, तो इसे initialize() कॉल में पास कर दिया जाएगा. इससे आपको व्यवहार को अपनी पसंद के मुताबिक बनाने की सुविधा मिलेगी.

  • runtimeCaching

    RuntimeCaching[] ज़रूरी नहीं है

    अपने सर्विस वर्कर को जनरेट करने के लिए Workbox के बिल्ड टूल का इस्तेमाल करते समय, आपके पास एक या उससे ज़्यादा रनटाइम कैश मेमोरी कॉन्फ़िगरेशन तय करने का विकल्प होता है. इसके बाद, आपके तय किए गए मैच और हैंडलर कॉन्फ़िगरेशन का इस्तेमाल करके, इन्हें workbox-routing.registerRoute कॉल में बदल दिया जाता है.

    सभी विकल्पों के बारे में जानने के लिए, workbox-build.RuntimeCaching दस्तावेज़ देखें. नीचे दिए गए उदाहरण में एक सामान्य कॉन्फ़िगरेशन दिखाया गया है, जिसमें दो रनटाइम रूट तय किए गए हैं:

  • skipWaiting

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: false

    जनरेट किए गए सर्विस वर्कर को skipWaiting() को बिना किसी शर्त के कॉल करना है या नहीं. अगर false है, तो इसके बजाय message लिसनर जोड़ा जाएगा. इससे क्लाइंट पेज, इंतज़ार करने वाले सर्विस वर्कर को postMessage({type: 'SKIP_WAITING'}) को कॉल करके skipWaiting() को ट्रिगर कर पाएंगे.

  • सोर्समैप

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: true

    जनरेट की गई सर्विस वर्कर फ़ाइलों के लिए सोर्समैप बनाना है या नहीं.

GenerateSWOptions

GetManifestOptions

GetManifestResult

प्रॉपर्टी

  • सोलर पैनलों की संख्या

    नंबर

  • manifestEntries
  • साइज़

    नंबर

  • चेतावनियां

    स्ट्रिंग[]

GlobPartial

प्रॉपर्टी

  • globFollow

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: true

    यह तय करता है कि प्रीकैश मेनिफ़ेस्ट जनरेट करते समय, सिमलिंक का इस्तेमाल किया जाता है या नहीं. ज़्यादा जानकारी के लिए, glob दस्तावेज़ में follow की परिभाषा देखें.

  • globIgnores

    स्ट्रिंग[] ज़रूरी नहीं है

    डिफ़ॉल्ट वैल्यू यह है: ["**\/node_modules\/**\/*"]

    प्रीकैश मेनिफ़ेस्ट को जनरेट करते समय, फ़ाइलों से मैच करने वाले पैटर्न का सेट, जिसे हमेशा बाहर रखा जाता है. ज़्यादा जानकारी के लिए, glob दस्तावेज़ में ignore की परिभाषा देखें.

  • globPatterns

    स्ट्रिंग[] ज़रूरी नहीं है

    डिफ़ॉल्ट वैल्यू यह है: ["**\/*.{js,css,html}"]

    इनमें से किसी भी पैटर्न से मेल खाने वाली फ़ाइलों को प्री-कैश मेनिफ़ेस्ट में शामिल किया जाएगा. ज़्यादा जानकारी के लिए, glob प्राइमर देखें.

  • globStrict

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: true

    सही होने पर, प्रीकैश मेनिफ़ेस्ट जनरेट करते समय डायरेक्ट्री को पढ़ने में गड़बड़ी की वजह से, बिल्ड नहीं हो पाएगा. गलत होने पर, समस्या वाली डायरेक्ट्री को स्किप कर दिया जाएगा. ज़्यादा जानकारी के लिए, glob दस्तावेज़ में strict की परिभाषा देखें.

  • templatedURLs

    ऑब्जेक्ट ज़रूरी नहीं

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

InjectManifestOptions

InjectPartial

प्रॉपर्टी

  • injectionPoint

    स्ट्रिंग ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू है: "self.__WB_MANIFEST"

    swSrc फ़ाइल में खोजी जाने वाली स्ट्रिंग. मिल जाने पर, इसे जनरेट किए गए प्रीकैश मेनिफ़ेस्ट से बदल दिया जाएगा.

  • swSrc

    स्ट्रिंग

    उस सर्विस वर्कर फ़ाइल का पाथ और फ़ाइल नाम जिसे बिल्ड प्रोसेस के दौरान पढ़ा जाएगा, जो मौजूदा वर्क डायरेक्ट्री से मेल खाता है.

ManifestEntry

प्रॉपर्टी

  • रखरखाव करना

    स्ट्रिंग ज़रूरी नहीं

  • बदलाव

    स्ट्रिंग

  • यूआरएल

    स्ट्रिंग

ManifestTransform()

workbox-build.ManifestTransform(
  manifestEntries: (ManifestEntry&object)[],
  compilation?: unknown,
)

टाइप

फ़ंक्शन

पैरामीटर

  • manifestEntries

    (ManifestEntry&ऑब्जेक्ट)[]

    • साइज़

      नंबर

  • कंपाइलेशन

    पता नहीं ज़रूरी नहीं

ManifestTransformResult

प्रॉपर्टी

  • मेनिफ़ेस्ट

    (ManifestEntry&ऑब्जेक्ट)[]

    • साइज़

      नंबर

  • चेतावनियां

    स्ट्रिंग[] ज़रूरी नहीं है

OptionalGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

    स्ट्रिंग ज़रूरी नहीं

    वह लोकल डायरेक्ट्री जिससे आपको globPatterns का मिलान करना है. पाथ मौजूदा डायरेक्ट्री के मुताबिक है.

RequiredGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

    स्ट्रिंग

    वह लोकल डायरेक्ट्री जिससे आपको globPatterns का मिलान करना है. पाथ मौजूदा डायरेक्ट्री के मुताबिक है.

RequiredSWDestPartial

प्रॉपर्टी

  • swDest

    स्ट्रिंग

    उस सर्विस वर्कर फ़ाइल का पाथ और फ़ाइल नाम होता है जिसे बिल्ड प्रोसेस से बनाया जाएगा. यह मौजूदा डायरेक्ट्री से मेल खाता है. यह '.js' पर खत्म होना चाहिए.

RuntimeCaching

प्रॉपर्टी

  • हैंडलर

    इससे तय होता है कि रनटाइम रूट, रिस्पॉन्स कैसे जनरेट करेगा. पहले से मौजूद workbox-strategies में से किसी एक का इस्तेमाल करने के लिए, उसका नाम बताएं, जैसे कि 'NetworkFirst'. इसके अलावा, यह कस्टम रिस्पॉन्स लॉजिक वाला workbox-core.RouteHandler कॉलबैक फ़ंक्शन हो सकता है.

  • method

    HTTPMethod ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: "GET"

    एचटीटीपी तरीका, जिससे मैच करना है. आम तौर पर, 'GET' की डिफ़ॉल्ट वैल्यू काफ़ी होती है. हालांकि, ऐसा तब तक होता है, जब तक आपको साफ़ तौर पर, 'POST', 'PUT' या किसी और तरह के अनुरोध से मैच नहीं कराना होता.

  • विकल्प

    ऑब्जेक्ट ज़रूरी नहीं

    • backgroundSync

      ऑब्जेक्ट ज़रूरी नहीं

      इसे कॉन्फ़िगर करने से, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-background-sync.BackgroundSyncPlugin इंस्टेंस जुड़ जाएगा.

      • नाम

        स्ट्रिंग

      • विकल्प

        QueueOptions ज़रूरी नहीं है

    • broadcastUpdate

      ऑब्जेक्ट ज़रूरी नहीं

      इसे कॉन्फ़िगर करने से, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-broadcast-update.BroadcastUpdatePlugin इंस्टेंस जुड़ जाएगा.

    • cacheName

      स्ट्रिंग ज़रूरी नहीं

      अगर यह पैरामीटर दिया जाता है, तो handler में कॉन्फ़िगर किए गए workbox-strategies की cacheName प्रॉपर्टी सेट हो जाएगी.

    • cacheableResponse

      CacheableResponseOptions ज़रूरी नहीं

      इसे कॉन्फ़िगर करने से, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-cacheable-response.CacheableResponsePlugin इंस्टेंस जुड़ जाएगा.

    • expiration

      ExpirationPluginOptions ज़रूरी नहीं है

      इसे कॉन्फ़िगर करने से, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-expiration.ExpirationPlugin इंस्टेंस जुड़ जाएगा.

    • fetchOptions

      requestInit ज़रूरी नहीं

      इसे कॉन्फ़िगर करने के बाद, fetchOptions वैल्यू, handler में कॉन्फ़िगर किए गए workbox-strategies के साथ पास हो जाएगी.

    • matchOptions

      CashQueryOptions ज़रूरी नहीं

      इसे कॉन्फ़िगर करने के बाद, matchOptions वैल्यू, handler में कॉन्फ़िगर किए गए workbox-strategies के साथ पास हो जाएगी.

    • networkTimeoutSeconds

      नंबर ज़रूरी नहीं

      अगर यह पैरामीटर दिया जाता है, तो handler में कॉन्फ़िगर किए गए workbox-strategies की networkTimeoutSeconds प्रॉपर्टी सेट हो जाएगी. ध्यान दें कि सिर्फ़ 'NetworkFirst' और 'NetworkOnly' पर networkTimeoutSeconds काम करता है.

    • प्लगिन

      WorkboxPlugin[] ज़रूरी नहीं है

      इसे कॉन्फ़िगर करने से ऐसे एक या ज़्यादा Workbox प्लगिन के उपयोग की अनुमति मिल जाती है जिनमें "शॉर्टकट" विकल्प (जैसे workbox-expiration.ExpirationPlugin के लिए expiration) नहीं हैं. यहां दिए गए प्लग इन को handler में कॉन्फ़िगर किए गए workbox-strategies में जोड़ा जाएगा.

    • precacheFallback

      ऑब्जेक्ट ज़रूरी नहीं

      इसे कॉन्फ़िगर करने से, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-precaching.PrecacheFallbackPlugin इंस्टेंस जुड़ जाएगा.

      • fallbackURL

        स्ट्रिंग

    • rangeRequests

      बूलियन ज़रूरी नहीं

      इसे चालू करने पर, handler में कॉन्फ़िगर किए गए workbox-strategies में एक workbox-range-requests.RangeRequestsPlugin इंस्टेंस जुड़ जाएगा.

  • urlPattern

    स्ट्रिंग|RegExp|RouteMatchCallback

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

    यह वैल्यू, सीधे workbox-routing.registerRoute को पास किए गए पहले पैरामीटर से मैप होती है. हमारा सुझाव है कि अपने काम को आसान बनाने के लिए, workbox-core.RouteMatchCallback फ़ंक्शन का इस्तेमाल करें.

StrategyName

Enum

"NetworkFirst"

"NetworkOnly"

WebpackGenerateSWOptions

WebpackGenerateSWPartial

प्रॉपर्टी

  • importScriptsViaChunks

    स्ट्रिंग[] ज़रूरी नहीं है

    वेबपैक डेटा के एक या एक से ज़्यादा नाम. इन हिस्सों का कॉन्टेंट, importScripts() को कॉल करके जनरेट किए गए सर्विस वर्कर में शामिल किया जाएगा.

  • swDest

    स्ट्रिंग ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: "service-worker.js"

    इस प्लग इन के ज़रिए बनाई गई सर्विस वर्कर फ़ाइल का एसेट नाम.

WebpackInjectManifestOptions

WebpackInjectManifestPartial

प्रॉपर्टी

  • compileSrc

    बूलियन ज़रूरी नहीं

    डिफ़ॉल्ट वैल्यू यह है: true

    true (डिफ़ॉल्ट तौर पर) होने पर, swSrc फ़ाइल को वेबपैक की मदद से कंपाइल किया जाएगा. false होने पर, कंपाइलेशन नहीं होगा और webpackCompilationPlugins का इस्तेमाल नहीं किया जा सकता. अगर आपको मेनिफ़ेस्ट फ़ाइल, जैसे कि किसी JSON फ़ाइल में इंजेक्ट करनी है, तो false पर सेट करें.

  • swDest

    स्ट्रिंग ज़रूरी नहीं

    इस प्लग इन से बनाई जाने वाली सर्विस वर्कर फ़ाइल का एसेट नाम. अगर इसे मिटाया जाता है, तो यह नाम swSrc के नाम के हिसाब से दिया जाएगा.

  • webpackCompilationPlugins

    कोई भी[] ज़रूरी नहीं

    वैकल्पिक webpack प्लगिन का इस्तेमाल, swSrc इनपुट फ़ाइल को कंपाइल करते समय किया जाएगा. सिर्फ़ तब मान्य है, जब compileSrc true हो.

WebpackPartial

प्रॉपर्टी

  • हिस्से

    स्ट्रिंग[] ज़रूरी नहीं है

    एक या एक से ज़्यादा समूह के नाम जिनकी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल किया जाना चाहिए.

  • छोड़ें

    (string|RegExp|function)[] optional

    प्रीकैश मेनिफ़ेस्ट से एसेट को बाहर रखने के लिए, एक या एक से ज़्यादा खास जानकारी का इस्तेमाल किया गया. इसे webpack के स्टैंडर्ड exclude विकल्प के तौर पर, इन नियमों के हिसाब से ही समझा जाता है. अगर यह पैरामीटर उपलब्ध नहीं कराया जाता, तो डिफ़ॉल्ट तौर पर यह [/\.map$/, /^manifest.*\.js$] वैल्यू होती है.

  • excludeChunks

    स्ट्रिंग[] ज़रूरी नहीं है

    एक या एक से ज़्यादा समूह के नाम जिनकी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल नहीं किया जाना चाहिए.

  • शामिल करें

    (string|RegExp|function)[] optional

    प्रीकैश मेनिफ़ेस्ट में एसेट को शामिल करने के लिए, एक या एक से ज़्यादा जानकारी का इस्तेमाल किया गया. इसे webpack के स्टैंडर्ड include विकल्प के तौर पर, इन नियमों के हिसाब से ही समझा जाता है.

  • मोड

    स्ट्रिंग ज़रूरी नहीं

    अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो ऑप्टिमाइज़ किया गया सर्विस वर्कर बंडल बनाया जाएगा. इसमें डीबग करने की जानकारी शामिल नहीं होगी. अगर यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो मौजूदा webpack कंपाइलेशन में कॉन्फ़िगर की गई mode वैल्यू का इस्तेमाल किया जाएगा.

तरीके

copyWorkboxLibraries()

workbox-build.copyWorkboxLibraries(
  destDirectory: string,
)

यह Workbox में इस्तेमाल की जाने वाली रनटाइम लाइब्रेरी के सेट को लोकल डायरेक्ट्री में कॉपी करता है. इसे आपकी सर्विस वर्कर फ़ाइल के साथ डिप्लॉय किया जाना चाहिए.

इन लोकल कॉपी को डिप्लॉय करने के बजाय, इनके आधिकारिक सीडीएन यूआरएल से Workbox का इस्तेमाल किया जा सकता है.

इस तरीके का इस्तेमाल, workbox-build.injectManifest का इस्तेमाल करने वाले उन डेवलपर के लिए किया जा सकता है जो Workbox की सीडीएन कॉपी का इस्तेमाल नहीं करना चाहते. workbox-build.generateSW का इस्तेमाल करने वाले डेवलपर को, इस तरीके को सीधे तौर पर कॉल करने की ज़रूरत नहीं है.

पैरामीटर

  • destDirectory

    स्ट्रिंग

    पैरंट डायरेक्ट्री का पाथ, जिसके तहत लाइब्रेरी की नई डायरेक्ट्री बनाई जाएगी.

रिटर्न

  • प्रॉमिस<string>

    नई बनाई गई डायरेक्ट्री का नाम.

generateSW()

workbox-build.generateSW(
  config: GenerateSWOptions,
)

आपके दिए गए विकल्पों के आधार पर, यह तरीका प्रीकैश करने के लिए यूआरएल की एक सूची बनाता है. इसे "प्रीकैश मेनिफ़ेस्ट" कहा जाता है.

यह ऐसे दूसरे विकल्प भी लेता है जो सर्विस वर्कर के व्यवहार को कॉन्फ़िगर करते हैं. जैसे, इसे इस्तेमाल किए जाने वाले runtimeCaching नियम.

प्रीकैश मेनिफ़ेस्ट और अतिरिक्त कॉन्फ़िगरेशन के आधार पर, यह swDest पर डिस्क पर, इस्तेमाल के लिए तैयार सर्विस वर्कर फ़ाइल लिखता है.

// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await generateSW({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  navigateFallback: '...',
  runtimeCaching: [{
    // Routing via a matchCallback function:
    urlPattern: ({request, url}) => ...,
    handler: '...',
    options: {
      cacheName: '...',
      expiration: {
        maxEntries: ...,
      },
    },
  }, {
    // Routing via a RegExp:
    urlPattern: new RegExp('...'),
    handler: '...',
    options: {
      cacheName: '...',
      plugins: [..., ...],
    },
  }],
  skipWaiting: ...,
  swDest: '...',
});

पैरामीटर

रिटर्न

getManifest()

workbox-build.getManifest(
  config: GetManifestOptions,
)

यह तरीका प्री-कैश करने के लिए यूआरएल की सूची दिखाता है. इसे "प्रीकैश मेमोरी" कहा जाता है. इसमें आपके दिए गए विकल्पों के आधार पर, एंट्री की संख्या और उनके साइज़ की जानकारी भी शामिल होती है.

// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, manifestEntries, size, warnings} = await getManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
});

पैरामीटर

रिटर्न

getModuleURL()

workbox-build.getModuleURL(
  moduleName: string,
  buildType: BuildType,
)

पैरामीटर

  • moduleName

    स्ट्रिंग

  • buildType

    BuildType

रिटर्न

  • स्ट्रिंग

injectManifest()

workbox-build.injectManifest(
  config: InjectManifestOptions,
)

आपके दिए गए विकल्पों के आधार पर, यह तरीका प्रीकैश करने के लिए यूआरएल की एक सूची बनाता है. इसे "प्रीकैश मेनिफ़ेस्ट" कहा जाता है.

मेनिफ़ेस्ट को swSrc फ़ाइल में इंजेक्ट किया जाता है और प्लेसहोल्डर स्ट्रिंग injectionPoint से तय होता है कि मेनिफ़ेस्ट को फ़ाइल में कहां जाना चाहिए.

फ़ाइनल सर्विस वर्कर फ़ाइल, जिसमें मेनिफ़ेस्ट इंजेक्ट किया गया है, डिस्क पर swDest पर लिखी जाती है.

इस तरीके से आपकी swSrc फ़ाइल को कंपाइल या बंडल नहीं किया जाएगा. यह सिर्फ़ मेनिफ़ेस्ट को इंजेक्ट करने का काम करता है.

// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await injectManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  swDest: '...',
  swSrc: '...',
});

पैरामीटर

रिटर्न