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

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

    (string | ManifestEntry)[] optional

    पहले से कैश मेमोरी में सेव की जाने वाली एंट्री की सूची. इसमें वे एंट्री भी शामिल होती हैं जो बिल्ड कॉन्फ़िगरेशन के हिस्से के तौर पर जनरेट होती हैं.

  • dontCacheBustURLsMatching

    RegExp ज़रूरी नहीं

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

  • manifestTransforms

    ManifestTransform[] optional

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

  • maximumFileSizeToCacheInBytes

    number ज़रूरी नहीं

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

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

  • modifyURLPrefix

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

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

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

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

BuildResult

टाइप

Omit<GetManifestResult"manifestEntries"
> & object

प्रॉपर्टी

  • filePaths

    string[]

GeneratePartial

प्रॉपर्टी

  • babelPresetEnvTargets

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

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

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

  • cacheId

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

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

  • cleanupOutdatedCaches

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

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

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

  • clientsClaim

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

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

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

  • directoryIndex

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

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

  • disableDevLogs

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

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

  • ignoreURLParametersMatching

    RegExp[] optional

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

  • importScripts

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

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

  • inlineWorkboxRuntime

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

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

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

  • मोड

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

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

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

  • navigateFallback

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

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

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

  • navigateFallbackAllowlist

    RegExp[] optional

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

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

  • navigateFallbackDenylist

    RegExp[] optional

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

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

  • navigationPreload

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

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

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

  • offlineGoogleAnalytics

    boolean | GoogleAnalyticsInitializeOptions ज़रूरी नहीं है

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

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

  • runtimeCaching

    RuntimeCaching[] optional

    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 प्राइमर देखें.

  • templatedURLs

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

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

InjectManifestOptions

InjectPartial

प्रॉपर्टी

  • injectionPoint

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

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

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

  • swSrc

    स्ट्रिंग

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

ManifestEntry

प्रॉपर्टी

  • इंटिग्रिटी

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

  • बदलाव

    स्ट्रिंग

  • url

    स्ट्रिंग

ManifestTransform()

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

टाइप

फ़ंक्शन

पैरामीटर

  • manifestEntries

    (ManifestEntry & object)[]

    • साइज़

      संख्या

  • कंपाइलेशन

    unknown optional

रिटर्न

ManifestTransformResult

प्रॉपर्टी

  • मेनिफ़ेस्ट

    (ManifestEntry & object)[]

    • साइज़

      संख्या

  • चेतावनियां

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

OptionalGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

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

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

RequiredGlobDirectoryPartial

प्रॉपर्टी

  • globDirectory

    स्ट्रिंग

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

RequiredSWDestPartial

प्रॉपर्टी

  • swDest

    स्ट्रिंग

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

RuntimeCaching

प्रॉपर्टी

  • हैंडलर

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

  • तरीका

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

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

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

  • विकल्प

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

    • backgroundSync

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

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

      • नाम

        स्ट्रिंग

      • विकल्प

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

    • broadcastUpdate

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

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

    • cacheName

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

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

    • cacheableResponse

      इसे कॉन्फ़िगर करने से, 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 ज़रूरी नहीं

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

    • प्लगिन

      WorkboxPlugin[] optional

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

    • precacheFallback

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

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

      • fallbackURL

        स्ट्रिंग

    • rangeRequests

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

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

  • urlPattern

    string | RegExp | RouteMatchCallback

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

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

StrategyName

Enum

"CacheFirst"

"CacheOnly"

"NetworkFirst"

"NetworkOnly"

"StaleWhileRevalidate"

WebpackGenerateSWOptions

WebpackGenerateSWPartial

प्रॉपर्टी

  • importScriptsViaChunks

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

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

  • swDest

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

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

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

WebpackInjectManifestOptions

WebpackInjectManifestPartial

प्रॉपर्टी

  • compileSrc

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

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

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

  • swDest

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

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

  • webpackCompilationPlugins

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

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

WebpackPartial

प्रॉपर्टी

  • टुकड़े

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

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

  • छोड़ें

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

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

  • excludeChunks

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

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

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

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

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

  • मोड

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

    अगर इसे 'production' पर सेट किया जाता है, तो एक ऑप्टिमाइज़ किया गया सर्विस वर्कर बंडल तैयार किया जाएगा. इसमें डीबग करने से जुड़ी जानकारी शामिल नहीं होगी. अगर इसे यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो मौजूदा 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: '...',
});

पैरामीटर

रिटर्न

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

पैरामीटर

रिटर्न

getModuleURL()

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

पैरामीटर

  • moduleName

    स्ट्रिंग

  • buildType

    BuildType

रिटर्न

  • स्ट्रिंग

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

पैरामीटर

रिटर्न