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

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] वैल्यू डाली जाती है, तो हमारा सुझाव है कि आप एक रेगुलर एक्सप्रेशन दें. इससे, प्रीकैश करने के दौरान खर्च होने वाले बैंडविड्थ को कम किया जा सकेगा.

  • manifestTransforms

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

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

  • maximumFileSizeToCacheInBytes

    number ज़रूरी नहीं

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

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

  • modifyURLPrefix

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

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

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

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

BuildResult

टाइप

<GetManifestResult"manifestEntries"
> & ऑब्जेक्ट को हटाएं

प्रॉपर्टी

  • filePaths

    string[]

GeneratePartial

प्रॉपर्टी

  • babelPresetEnvTargets

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

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

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

  • cacheId

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

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

  • cleanupOutdatedCaches

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

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

    क्या Workbox को पुराने और काम न करने वाले वर्शन से बनाए गए, पहले से कैश मेमोरी में सेव किए गए कॉन्टेंट की पहचान करके उसे मिटाना चाहिए या नहीं.

  • clientsClaim

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

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

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

  • directoryIndex

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

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

  • disableDevLogs

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

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

  • ignoreURLParametersMatching

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

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

  • importScripts

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

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

  • inlineWorkboxRuntime

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

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

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

  • मोड

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

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

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

  • navigateFallback

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

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

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

  • navigateFallbackAllowlist

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

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

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

  • navigateFallbackDenylist

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

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

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

  • navigationPreload

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

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

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

  • offlineGoogleAnalytics

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

    डिफ़ॉल्ट वैल्यू: 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() को ट्रिगर करने की अनुमति मिलती है.

  • sourcemap

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

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

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

GenerateSWOptions

GetManifestOptions

GetManifestResult

प्रॉपर्टी

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

    संख्या

  • manifestEntries
  • साइज़

    संख्या

  • चेतावनियां

    string[]

GlobPartial

प्रॉपर्टी

  • globFollow

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

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

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

  • globIgnores

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

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

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

  • globPatterns

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

    डिफ़ॉल्ट वैल्यू: ["**\/*.{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,
)

टाइप

फ़ंक्शन

पैरामीटर

  • manifestEntries

    (ManifestEntry & object)[]

    • साइज़

      संख्या

  • कंपाइलेशन

    unknown ज़रूरी नहीं

रिटर्न

ManifestTransformResult

प्रॉपर्टी

  • मेनिफ़ेस्ट

    (ManifestEntry & object)[]

    • साइज़

      संख्या

  • चेतावनियां

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

OptionalGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

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

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

RequiredGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

    स्ट्रिंग

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

RequiredSWDestPartial

प्रॉपर्टी

  • swDest

    स्ट्रिंग

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

RuntimeCaching

प्रॉपर्टी

  • इससे यह तय होता है कि रनटाइम रूट, जवाब कैसे जनरेट करेगा. पहले से मौजूद किसी 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 इंस्टेंस जुड़ जाएगा.

    • cacheName

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

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

    • cacheableResponse

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

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

    • समयसीमा खत्म होने की तारीख

      ExpirationPluginOptions ज़रूरी नहीं

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

    • fetchOptions

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

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

    • matchOptions

      CacheQueryOptions ज़रूरी नहीं

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

    • networkTimeoutSeconds

      number ज़रूरी नहीं

      अगर यह वैल्यू दी जाती है, तो यह 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

प्रॉपर्टी

  • importScriptsViaChunks

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

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

  • swDest

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

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

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

WebpackInjectManifestOptions

WebpackInjectManifestPartial

प्रॉपर्टी

  • compileSrc

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

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

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

  • swDest

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

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

  • webpackCompilationPlugins

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

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

WebpackPartial

प्रॉपर्टी

  • चंक

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

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

  • छोड़ें

    (string | RegExp | function)[] ज़रूरी नहीं

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

  • excludeChunks

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

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

  • शामिल होते हैं

    (string | RegExp | function)[] ज़रूरी नहीं

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

  • मोड

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

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

तरीके

copyWorkboxLibraries()

workbox-build.copyWorkboxLibraries(
  destDirectory: string,
)

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

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

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

पैरामीटर

  • destDirectory

    स्ट्रिंग

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

रिटर्न

  • Promise<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: '...',
});

पैरामीटर

रिटर्न