workbox-build मॉड्यूल, नोड-आधारित बिल्ड प्रोसेस में इंटिग्रेट होता है. यह एक पूरा सर्विस वर्कर जनरेट कर सकता है या पहले से कैश मेमोरी में सेव करने के लिए ऐसेट की सूची जनरेट कर सकता है. इस सूची का इस्तेमाल, किसी मौजूदा सर्विस वर्कर में किया जा सकता है.
ज़्यादातर डेवलपर, generateSW और injectManifest मोड का इस्तेमाल करेंगे. इन सवालों के जवाबों से, आपको सही मोड और कॉन्फ़िगरेशन चुनने में मदद मिल सकती है.
किस मोड का इस्तेमाल करना है
generateSW
generateSW मोड, आपके लिए एक सेवा वर्कर फ़ाइल बनाता है. इसे कॉन्फ़िगरेशन के विकल्पों की मदद से पसंद के मुताबिक बनाया जाता है और डिस्क पर सेव किया जाता है.
generateSW का इस्तेमाल कब करना चाहिए
- आपको फ़ाइलों को पहले से कैश मेमोरी में सेव करना है.
- आपको रनटाइम कैश मेमोरी से जुड़ी आसान ज़रूरतें हैं.
generateSW का इस्तेमाल कब न करें
- आपको Service Worker की अन्य सुविधाओं (जैसे, वेब पुश) का इस्तेमाल करना है.
- आपको अतिरिक्त स्क्रिप्ट इंपोर्ट करनी हैं या कस्टम कैश मेमोरी से जुड़ी रणनीतियों के लिए अतिरिक्त लॉजिक जोड़ना है.
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(string | ManifestEntry)[] ज़रूरी नहीं पहले से कैश मेमोरी में सेव की जाने वाली एंट्री की सूची. इसमें, बिल्ड कॉन्फ़िगरेशन के हिस्से के तौर पर जनरेट की गई एंट्री भी शामिल हैं. 
- 
    dontCacheBustURLsMatchingरेगुलर एक्सप्रेशन ज़रूरी नहीं है इससे मैच करने वाली एसेट को उनके यूआरएल के ज़रिए यूनीक वर्शन माना जाएगा. साथ ही, उन्हें प्रीकैश में जानकारी भरते समय, सामान्य एचटीटीपी कैश-बस्टिंग से छूट दी जाएगी. हालांकि, ऐसा करना ज़रूरी नहीं है, लेकिन अगर आपकी मौजूदा बिल्ड प्रोसेस में, हर फ़ाइल के नाम में पहले से ही [hash]वैल्यू डाली जाती है, तो हमारा सुझाव है कि आप एक रेगुलर एक्सप्रेशन दें. इससे, प्रीकैश करने के दौरान खर्च होने वाले बैंडविड्थ को कम किया जा सकेगा.
- 
    manifestTransformsManifestTransform[] ज़रूरी नहीं है एक या उससे ज़्यादा फ़ंक्शन, जिन्हें जनरेट किए गए मेनिफ़ेस्ट पर क्रम से लागू किया जाएगा. अगर modifyURLPrefixयाdontCacheBustURLsMatchingके लिए भी वैल्यू दी गई है, तो पहले उनके लिए ट्रांसफ़ॉर्मेशन लागू किए जाएंगे.
- 
    maximumFileSizeToCacheInBytesnumber ज़रूरी नहीं डिफ़ॉल्ट वैल्यू: 2097152 इस वैल्यू का इस्तेमाल, उन फ़ाइलों के ज़्यादा से ज़्यादा साइज़ का पता लगाने के लिए किया जा सकता है जिन्हें पहले से कैश मेमोरी में सेव किया जाएगा. इससे, अनजाने में बहुत बड़ी फ़ाइलों को पहले से कैश मेमोरी में सेव होने से रोका जा सकता है. ऐसा तब हो सकता है, जब वे फ़ाइलें आपके किसी पैटर्न से मैच कर रही हों. 
- 
    modifyURLPrefixऑब्जेक्ट ज़रूरी नहीं है स्ट्रिंग प्रीफ़िक्स को बदलने वाली स्ट्रिंग वैल्यू पर मैप करने वाला ऑब्जेक्ट. इसका इस्तेमाल, उदाहरण के लिए, मेनिफ़ेस्ट एंट्री से पाथ प्रीफ़िक्स को हटाने या जोड़ने के लिए किया जा सकता है. ऐसा तब किया जाता है, जब आपका वेब होस्टिंग सेटअप, आपके डिवाइस के फ़ाइल सिस्टम के सेटअप से मेल न खाता हो. ज़्यादा सुविधाओं वाले विकल्प के तौर पर, manifestTransformsविकल्प का इस्तेमाल किया जा सकता है. साथ ही, कोई ऐसा फ़ंक्शन दिया जा सकता है जो आपके दिए गए लॉजिक का इस्तेमाल करके, मेनिफ़ेस्ट में मौजूद एंट्री में बदलाव करता है.इस्तेमाल का उदाहरण: // Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
टाइप
<GetManifestResult"manifestEntries" 
 > & ऑब्जेक्ट को हटाएं
प्रॉपर्टी
- 
    filePathsstring[] 
GeneratePartial
प्रॉपर्टी
- 
    babelPresetEnvTargetsstring[] ज़रूरी नहीं डिफ़ॉल्ट वैल्यू: ["chrome >= 56"] सर्विस वर्क बंडल को ट्रांसपाइल करते समय, babel-preset-envको पास करने के लिए टारगेट.
- 
    cacheIdस्ट्रिंग ज़रूरी नहीं है कैश मेमोरी के नामों के आगे जोड़ा जाने वाला वैकल्पिक आईडी. यह मुख्य रूप से स्थानीय डेवलपमेंट के लिए फ़ायदेमंद है, जहां एक ही http://localhost:portऑरिजिन से कई साइटें दिखाई जा सकती हैं.
- 
    cleanupOutdatedCachesबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false क्या Workbox को पुराने और काम न करने वाले वर्शन से बनाए गए, पहले से कैश मेमोरी में सेव किए गए कॉन्टेंट की पहचान करके उसे मिटाना चाहिए या नहीं. 
- 
    clientsClaimबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false सेवा वर्कर के चालू होने के बाद, क्या उसे किसी मौजूदा क्लाइंट को कंट्रोल करना शुरू करना चाहिए या नहीं. 
- 
    directoryIndexस्ट्रिंग ज़रूरी नहीं है अगर /पर खत्म होने वाले यूआरएल के लिए नेविगेशन अनुरोध, पहले से कैश मेमोरी में सेव किए गए यूआरएल से मेल नहीं खाता है, तो यह वैल्यू यूआरएल में जोड़ दी जाएगी. इसके बाद, यह जांच की जाएगी कि यह वैल्यू पहले से कैश मेमोरी में सेव किए गए यूआरएल से मेल खाती है या नहीं. इसे उसी पर सेट किया जाना चाहिए जिसका इस्तेमाल आपका वेब सर्वर, अपनी डायरेक्ट्री इंडेक्स के लिए कर रहा है.
- 
    disableDevLogsबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false 
- 
    ignoreURLParametersMatchingRegExp[] ज़रूरी नहीं इस कलेक्शन में मौजूद किसी भी रेगुलर एक्सप्रेशन से मैच होने वाले सर्च पैरामीटर के नाम, पहले से कैश मेमोरी में सेव किए गए मैच ढूंढने से पहले हटा दिए जाएंगे. यह तब काम आता है, जब आपके उपयोगकर्ता ऐसे यूआरएल का अनुरोध कर सकते हैं जिनमें ट्रैफ़िक के सोर्स को ट्रैक करने के लिए इस्तेमाल किए जाने वाले यूआरएल पैरामीटर शामिल हों. अगर यह वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट वैल्यू [/^utm_/, /^fbclid$/]होती है.
- 
    importScriptsstring[] ज़रूरी नहीं JavaScript फ़ाइलों की सूची, जिन्हें जनरेट की गई सेवा वर्कर फ़ाइल में importScripts()के अंदर पास किया जाना चाहिए. यह तब काम आता है, जब आपको Workbox को अपनी टॉप-लेवल सेवा वर्कर फ़ाइल बनाने की अनुमति देनी हो, लेकिन आपको कुछ अतिरिक्त कोड शामिल करना हो, जैसे कि पुश इवेंट सुनने वाला.
- 
    inlineWorkboxRuntimeबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false Workbox लाइब्रेरी के लिए रनटाइम कोड को टॉप-लेवल सेवा वर्कर में शामिल किया जाना चाहिए या किसी अलग फ़ाइल में बांटकर, उसे सेवा वर्कर के साथ डिप्लॉय किया जाना चाहिए. रनटाइम को अलग रखने का मतलब है कि जब भी आपका टॉप-लेवल सेवा वर्कर बदलेगा, तब उपयोगकर्ताओं को Workbox कोड को फिर से डाउनलोड नहीं करना पड़ेगा. 
- 
    मोडस्ट्रिंग ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: "production" अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो डीबग करने से जुड़ी जानकारी को हटाकर, ऑप्टिमाइज़ किया गया सेवा वर्कर बंडल बनाया जाएगा. अगर यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो process.env.NODE_ENVवैल्यू का इस्तेमाल किया जाएगा. अगर ऐसा नहीं होता है, तो यह'production'पर वापस आ जाएगी.
- 
    स्ट्रिंग ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: null अगर यह जानकारी दी गई है, तो पहले से कैश मेमोरी में सेव नहीं किए गए यूआरएल के लिए, सभी नेविगेशन अनुरोध, दिए गए यूआरएल पर मौजूद एचटीएमएल से पूरे किए जाएंगे. आपको उस एचटीएमएल दस्तावेज़ का यूआरएल डालना होगा जो आपके प्रीकैश मेनिफ़ेस्ट में शामिल है. इसका इस्तेमाल, एक पेज वाले ऐप्लिकेशन के ऐसे मामले में किया जाता है जहां आपको सभी नेविगेशन के लिए, एक ही ऐप्लिकेशन शेल एचटीएमएल का इस्तेमाल करना हो. 
- 
    RegExp[] ज़रूरी नहीं रेगुलर एक्सप्रेशन का वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया navigateFallbackव्यवहार किन यूआरएल पर लागू होगा. यह तब काम आता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन के हिस्से के तौर पर माना जाना चाहिए. अगरnavigateFallbackDenylistऔरnavigateFallbackAllowlist, दोनों को कॉन्फ़िगर किया गया है, तो ब्लैकलिस्ट को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल रेगुलर एक्सप्रेशन का इस्तेमाल करने से बचें. ऐसा न करने पर, आपके उपयोगकर्ताओं को आपकी साइट पर नेविगेट करने में देरी हो सकती है. 
- 
    RegExp[] ज़रूरी नहीं रेगुलर एक्सप्रेशन का वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया navigateFallbackव्यवहार किन यूआरएल पर लागू होगा. यह तब काम आता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन के हिस्से के तौर पर माना जाना चाहिए. अगरnavigateFallbackDenylistऔरnavigateFallbackAllowlist, दोनों को कॉन्फ़िगर किया गया है, तो 'पाबंदी वाली सूची' को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल रेगुलर एक्सप्रेशन का इस्तेमाल करने से बचें. ऐसा न करने पर, आपके उपयोगकर्ताओं को आपकी साइट पर नेविगेट करने में देरी हो सकती है. 
- 
    बूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false जनरेट किए गए सेवा वर्कर में, नेविगेशन प्रीलोड को चालू करना है या नहीं. इस विकल्प को 'सही है' पर सेट करने पर, आपको runtimeCachingका इस्तेमाल करके, जवाब देने की सही रणनीति सेट अप करनी होगी. यह रणनीति, नेविगेशन अनुरोधों से मैच करेगी और पहले से लोड किए गए जवाब का इस्तेमाल करेगी.
- 
    offlineGoogleAnalyticsबूलियन | GoogleAnalyticsInitializeOptions ज़रूरी नहीं डिफ़ॉल्ट वैल्यू: false इससे यह कंट्रोल होता है कि ऑफ़लाइन Google Analytics के लिए सहायता शामिल की जाए या नहीं. जब true,workbox-google-analyticsकेinitialize()को कॉल करेगा, तो उसे जनरेट किए गए आपके सेवा वर्कर में जोड़ दिया जाएगा.Objectपर सेट होने पर, उस ऑब्जेक्ट कोinitialize()कॉल में पास कर दिया जाएगा. इससे, आपको व्यवहार को पसंद के मुताबिक बनाने की सुविधा मिलेगी.
- 
    runtimeCachingRuntimeCaching[] ज़रूरी नहीं अपना सेवा वर्कर जनरेट करने के लिए, Workbox के बिल्ड टूल का इस्तेमाल करते समय, एक या एक से ज़्यादा रनटाइम कैश मेमोरी कॉन्फ़िगरेशन तय किए जा सकते हैं. इसके बाद, आपके तय किए गए मैच और हैंडलर कॉन्फ़िगरेशन का इस्तेमाल करके, इन्हें workbox-routing.registerRouteकॉल में बदल दिया जाता है.सभी विकल्पों के बारे में जानने के लिए, workbox-build.RuntimeCachingवाला दस्तावेज़ देखें. नीचे दिए गए उदाहरण में एक सामान्य कॉन्फ़िगरेशन दिखाया गया है, जिसमें दो रनटाइम रूट तय किए गए हैं:
- 
    skipWaitingबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: false जनरेट किए गए सेवा वर्कर में, skipWaiting()के लिए बिना शर्त वाला कॉल जोड़ना है या नहीं. अगरfalseहै, तो इसके बजायmessageलिसनर जोड़ा जाएगा. इससे क्लाइंट पेजों को, इंतज़ार में मौजूद सेवा वर्कर परpostMessage({type: 'SKIP_WAITING'})कॉल करकेskipWaiting()को ट्रिगर करने की अनुमति मिलती है.
- 
    sourcemapबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: true जनरेट की गई सेवा वर्कर फ़ाइलों के लिए सोर्समैप बनाना है या नहीं. 
GenerateSWOptions
टाइप
GetManifestOptions
GetManifestResult
प्रॉपर्टी
- 
    सोलर पैनलों की संख्यासंख्या 
- 
    manifestEntries
- 
    साइज़संख्या 
- 
    चेतावनियांstring[] 
GlobPartial
प्रॉपर्टी
- 
    globFollowबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: true इससे यह तय होता है कि प्रीकैश मेनिफ़ेस्ट जनरेट करते समय, सिमलिन्क का इस्तेमाल किया जाएगा या नहीं. ज़्यादा जानकारी के लिए, globदस्तावेज़ मेंfollowकी परिभाषा देखें.
- 
    globIgnoresstring[] ज़रूरी नहीं डिफ़ॉल्ट वैल्यू: ["**\/node_modules\/**\/*"] प्रीकैश मेनिफ़ेस्ट जनरेट करते समय, फ़ाइलों से मैच करने वाले पैटर्न का सेट, जिसे हमेशा बाहर रखना है. ज़्यादा जानकारी के लिए, globदस्तावेज़ मेंignoreकी परिभाषा देखें.
- 
    globPatternsstring[] ज़रूरी नहीं डिफ़ॉल्ट वैल्यू: ["**\/*.{js,wasm,css,html}"] इनमें से किसी भी पैटर्न से मेल खाने वाली फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल किया जाएगा. ज़्यादा जानकारी के लिए, globप्राइमर देखें.
- 
    globStrictबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: true अगर यह सही है, तो प्रीकैश मेनिफ़ेस्ट जनरेट करते समय डायरेक्ट्री को पढ़ने में हुई गड़बड़ी की वजह से, बिल्ड पूरा नहीं होगा. अगर यह वैल्यू 'गलत है' पर सेट है, तो समस्या वाली डायरेक्ट्री को छोड़ दिया जाएगा. ज़्यादा जानकारी के लिए, globके दस्तावेज़ मेंstrictकी परिभाषा देखें.
- 
    templatedURLsऑब्जेक्ट ज़रूरी नहीं है अगर कोई यूआरएल, सर्वर-साइड लॉजिक के आधार पर रेंडर किया जाता है, तो उसका कॉन्टेंट कई फ़ाइलों या किसी अन्य यूनीक स्ट्रिंग वैल्यू पर निर्भर हो सकता है. इस ऑब्जेक्ट में मौजूद कुंजियां, सर्वर से रेंडर किए गए यूआरएल हैं. अगर वैल्यू, स्ट्रिंग का ऐरे है, तो उन्हें globपैटर्न के तौर पर समझा जाएगा. साथ ही, पैटर्न से मैच करने वाली किसी भी फ़ाइल के कॉन्टेंट का इस्तेमाल, यूआरएल के यूनीक वर्शन के लिए किया जाएगा. अगर इसे किसी एक स्ट्रिंग के साथ इस्तेमाल किया जाता है, तो इसे यूनीक वर्शनिंग के तौर पर समझा जाएगा. यह जानकारी, किसी दिए गए यूआरएल के लिए जनरेट की गई होती है.
InjectManifestOptions
टाइप
InjectPartial
प्रॉपर्टी
- 
    injectionPointस्ट्रिंग ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: "self.__WB_MANIFEST" swSrcफ़ाइल में ढूंढी जाने वाली स्ट्रिंग. मिलने के बाद, इसे जनरेट किए गए प्रीकैश मेनिफ़ेस्ट से बदल दिया जाएगा.
- 
    swSrcस्ट्रिंग सेवा वर्कर फ़ाइल का पाथ और फ़ाइल का नाम, जिसे मौजूदा वर्किंग डायरेक्ट्री के हिसाब से, बिल्ड प्रोसेस के दौरान पढ़ा जाएगा. 
ManifestEntry
प्रॉपर्टी
- 
    इंटिग्रिटीस्ट्रिंग ज़रूरी नहीं है 
- 
    बदलावस्ट्रिंग 
- 
    urlस्ट्रिंग 
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
टाइप
फ़ंक्शन
पैरामीटर
- 
    manifestEntries(ManifestEntry & object)[] - 
    साइज़संख्या 
 
- 
    
- 
    कंपाइलेशनunknown ज़रूरी नहीं 
रिटर्न
- 
            Promise<ManifestTransformResult> | ManifestTransformResult 
ManifestTransformResult
प्रॉपर्टी
- 
    मेनिफ़ेस्ट(ManifestEntry & object)[] - 
    साइज़संख्या 
 
- 
    
- 
    चेतावनियांstring[] ज़रूरी नहीं 
OptionalGlobDirectoryPartial
प्रॉपर्टी
- 
    globDirectoryस्ट्रिंग ज़रूरी नहीं है वह लोकल डायरेक्ट्री जिसे आपको globPatternsसे मैच करना है. यह पाथ, मौजूदा डायरेक्ट्री के हिसाब से तय होता है.
RequiredGlobDirectoryPartial
प्रॉपर्टी
- 
    globDirectoryस्ट्रिंग वह लोकल डायरेक्ट्री जिसे आपको globPatternsसे मैच करना है. यह पाथ, मौजूदा डायरेक्ट्री के हिसाब से तय होता है.
RequiredSWDestPartial
प्रॉपर्टी
- 
    swDestस्ट्रिंग मौजूदा वर्किंग डायरेक्ट्री के हिसाब से, सेवा वर्कर फ़ाइल का पाथ और फ़ाइल का नाम. यह फ़ाइल, बिल्ड प्रोसेस के ज़रिए बनाई जाएगी. इसके आखिर में '.js' होना चाहिए. 
RuntimeCaching
प्रॉपर्टी
- 
    handlerइससे यह तय होता है कि रनटाइम रूट, जवाब कैसे जनरेट करेगा. पहले से मौजूद किसी workbox-strategiesका इस्तेमाल करने के लिए, उसका नाम दें, जैसे कि'NetworkFirst'. इसके अलावा, यह पसंद के मुताबिक रिस्पॉन्स लॉजिक वालाworkbox-core.RouteHandlerकॉलबैक फ़ंक्शन भी हो सकता है.
- 
    तरीकाHTTPMethod ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: "GET" एचटीटीपी का वह तरीका जिससे मैच करना है. आम तौर पर, 'GET'की डिफ़ॉल्ट वैल्यू काफ़ी होती है. हालांकि, अगर आपको'POST','PUT'या किसी दूसरी तरह के अनुरोध से मैच करना है, तो ऐसा करें.
- 
    विकल्पऑब्जेक्ट ज़रूरी नहीं है - 
    backgroundSyncऑब्जेक्ट ज़रूरी नहीं है इसे कॉन्फ़िगर करने पर, handlerमें कॉन्फ़िगर किए गएworkbox-strategiesमें एकworkbox-background-sync.BackgroundSyncPluginइंस्टेंस जुड़ जाएगा.- 
    नामस्ट्रिंग 
- 
    विकल्पQueueOptions ज़रूरी नहीं 
 
- 
    
- 
    broadcastUpdateऑब्जेक्ट ज़रूरी नहीं है इसे कॉन्फ़िगर करने पर, handlerमें कॉन्फ़िगर किए गएworkbox-strategiesमें एकworkbox-broadcast-update.BroadcastUpdatePluginइंस्टेंस जुड़ जाएगा.- 
    channelNameस्ट्रिंग ज़रूरी नहीं है 
- 
    विकल्प
 
- 
    
- 
    cacheNameस्ट्रिंग ज़रूरी नहीं है अगर यह वैल्यू दी जाती है, तो यह handlerमें कॉन्फ़िगर की गईworkbox-strategiesकीcacheNameप्रॉपर्टी को सेट कर देगी.
- 
    cacheableResponseCacheableResponseOptions ज़रूरी नहीं है इसे कॉन्फ़िगर करने पर, handlerमें कॉन्फ़िगर किए गएworkbox-strategiesमें एकworkbox-cacheable-response.CacheableResponsePluginइंस्टेंस जुड़ जाएगा.
- 
    समयसीमा खत्म होने की तारीखExpirationPluginOptions ज़रूरी नहीं इसे कॉन्फ़िगर करने पर, handlerमें कॉन्फ़िगर किए गएworkbox-strategiesमें एकworkbox-expiration.ExpirationPluginइंस्टेंस जुड़ जाएगा.
- 
    fetchOptionsRequestInit ज़रूरी नहीं है इसे कॉन्फ़िगर करने पर, fetchOptionsवैल्यू कोhandlerमें कॉन्फ़िगर किए गएworkbox-strategiesपर भेजा जाएगा.
- 
    matchOptionsCacheQueryOptions ज़रूरी नहीं इसे कॉन्फ़िगर करने पर, matchOptionsवैल्यू कोhandlerमें कॉन्फ़िगर किए गएworkbox-strategiesपर भेज दिया जाएगा.
- 
    networkTimeoutSecondsnumber ज़रूरी नहीं अगर यह वैल्यू दी जाती है, तो यह 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स्ट्रिंग | रेगुलर एक्सप्रेशन | RouteMatchCallback मैच करने की इस शर्त से यह तय होता है कि कॉन्फ़िगर किया गया हैंडलर, पहले से कैश मेमोरी में सेव किए गए किसी यूआरएल से मैच न करने वाले अनुरोधों के लिए जवाब जनरेट करेगा या नहीं. अगर कई RuntimeCachingरूट तय किए गए हैं, तो पहले उस रूट काurlPatternमैच होगा जो जवाब देगा.यह वैल्यू, workbox-routing.registerRouteको पास किए गए पहले पैरामीटर पर सीधे मैप होती है. हमारा सुझाव है कि ज़्यादा सुविधाओं के लिए,workbox-core.RouteMatchCallbackफ़ंक्शन का इस्तेमाल करें.
StrategyName
Enum
"CacheFirst" 
 
"CacheOnly" 
 
"NetworkFirst" 
 
"NetworkOnly" 
 
"StaleWhileRevalidate" 
 
WebpackGenerateSWOptions
WebpackGenerateSWPartial
प्रॉपर्टी
- 
    importScriptsViaChunksstring[] ज़रूरी नहीं वेबपैक चंक के एक या उससे ज़्यादा नाम. उन चंक का कॉन्टेंट, importScripts()को कॉल करके जनरेट किए गए सेवा वर्कर में शामिल किया जाएगा.
- 
    swDestस्ट्रिंग ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: "service-worker.js" इस प्लग इन से बनाई गई सेवा वर्कर फ़ाइल की एसेट का नाम. 
WebpackInjectManifestOptions
WebpackInjectManifestPartial
प्रॉपर्टी
- 
    compileSrcबूलियन ज़रूरी नहीं है डिफ़ॉल्ट वैल्यू: true true(डिफ़ॉल्ट) होने पर,swSrcफ़ाइल को वेबपैक से कंपाइल किया जाएगा.falseका इस्तेमाल करने पर, कंपाइल नहीं होगा. साथ ही,webpackCompilationPluginsका इस्तेमाल नहीं किया जा सकेगा. अगर आपको मेनिफ़ेस्ट को किसी JSON फ़ाइल में इंजेक्ट करना है, तो इसेfalseपर सेट करें.
- 
    swDestस्ट्रिंग ज़रूरी नहीं है इस प्लग इन से बनने वाली सेवा वर्कर फ़ाइल की एसेट का नाम. अगर यह एट्रिब्यूट नहीं दिया जाता है, तो नाम swSrcके नाम पर आधारित होगा.
- 
    webpackCompilationPluginsany[] ज़रूरी नहीं webpackके वैकल्पिक प्लग इन, जिनका इस्तेमालswSrcइनपुट फ़ाइल को कंपाइल करते समय किया जाएगा. यह सिर्फ़ तब मान्य है, जबcompileSrcकी वैल्यूtrueहो.
WebpackPartial
प्रॉपर्टी
- 
    चंकstring[] ज़रूरी नहीं एक या उससे ज़्यादा चंक के नाम, जिनसे जुड़ी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल किया जाना चाहिए. 
- 
    छोड़ें(string | RegExp | function)[] ज़रूरी नहीं एक या उससे ज़्यादा स्पेसिफ़ायर, जिनका इस्तेमाल प्रीकैश मेनिफ़ेस्ट से एसेट को बाहर रखने के लिए किया जाता है. इसे webpackके स्टैंडर्डexcludeविकल्प के उन ही नियमों के हिसाब से समझा जाता है. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट वैल्यू[/\.map$/, /^manifest.*\.js$]होती है.
- 
    excludeChunksstring[] ज़रूरी नहीं एक या उससे ज़्यादा चंक के नाम, जिनसे जुड़ी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट से बाहर रखा जाना चाहिए. 
- 
    शामिल होते हैं(string | RegExp | function)[] ज़रूरी नहीं प्रीकैश मेनिफ़ेस्ट में ऐसेट शामिल करने के लिए इस्तेमाल किए जाने वाले एक या एक से ज़्यादा स्पेसिफ़ायर. इसे webpackके स्टैंडर्डincludeविकल्प के उन ही नियमों के हिसाब से समझा जाता है.
- 
    मोडस्ट्रिंग ज़रूरी नहीं है अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो डीबग करने से जुड़ी जानकारी को हटाकर, ऑप्टिमाइज़ किया गया सेवा वर्कर बंडल बनाया जाएगा. अगर यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो मौजूदा webpackकलेक्शन में कॉन्फ़िगर की गईmodeवैल्यू का इस्तेमाल किया जाएगा.
तरीके
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
यह, Workbox के इस्तेमाल की जाने वाली रनटाइम लाइब्रेरी के सेट को एक स्थानीय डायरेक्ट्री में कॉपी करता है. इसे आपकी सेवा वर्कर फ़ाइल के साथ डिप्लॉय किया जाना चाहिए.
इन लोकल कॉपी को डिप्लॉय करने के बजाय, Workbox के आधिकारिक सीडीएन यूआरएल का इस्तेमाल किया जा सकता है.
यह तरीका, workbox-build.injectManifest का इस्तेमाल करने वाले उन डेवलपर के फ़ायदे के लिए उपलब्ध कराया गया है जो Workbox की सीडीएन कॉपी का इस्तेमाल नहीं करना चाहते. workbox-build.generateSW का इस्तेमाल करने वाले डेवलपर को, इस तरीके को साफ़ तौर पर कॉल करने की ज़रूरत नहीं है.
पैरामीटर
- 
    destDirectoryस्ट्रिंग उस पैरंट डायरेक्ट्री का पाथ जिससे लाइब्रेरी की नई डायरेक्ट्री बनाई जाएगी. 
रिटर्न
- 
            Promise<string> नई डायरेक्ट्री का नाम. 
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
यह तरीका, आपके दिए गए विकल्पों के आधार पर, पहले से कैश मेमोरी में सेव करने के लिए यूआरएल की सूची बनाता है. इसे "पहले से कैश मेमोरी में सेव करने के लिए मैनिफ़ेस्ट" कहा जाता है.
इसमें ऐसे अन्य विकल्प भी शामिल होते हैं जो सेवा वर्कर के व्यवहार को कॉन्फ़िगर करते हैं. जैसे, 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: '...',
});
पैरामीटर
- 
    config
रिटर्न
- 
            Promise<BuildResult> 
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
यह तरीका, पहले से कैश मेमोरी में सेव करने के लिए यूआरएल की सूची दिखाता है. इसे "पहले से कैश मेमोरी में सेव करने के लिए मैनिफ़ेस्ट" कहा जाता है. साथ ही, आपके दिए गए विकल्पों के आधार पर, एंट्री की संख्या और उनके साइज़ की जानकारी भी दी जाती है.
// 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: ...,
});
पैरामीटर
- 
    config
रिटर्न
- 
            Promise<GetManifestResult> 
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
पैरामीटर
- 
    moduleNameस्ट्रिंग 
- 
    buildTypeBuildType 
रिटर्न
- 
            स्ट्रिंग 
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
यह तरीका, आपके दिए गए विकल्पों के आधार पर, पहले से कैश मेमोरी में सेव करने के लिए यूआरएल की सूची बनाता है. इसे "पहले से कैश मेमोरी में सेव करने के लिए मैनिफ़ेस्ट" कहा जाता है.
मेनिफ़ेस्ट को 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: '...',
});
पैरामीटर
- 
    config
रिटर्न
- 
            Promise<BuildResult>