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'पर वापस आ जाएगा. -
string ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू: null
अगर यह विकल्प चुना जाता है, तो प्रीकैश नहीं किए गए यूआरएल के लिए, नेविगेशन के सभी अनुरोधों को दिए गए यूआरएल पर मौजूद एचटीएमएल से पूरा किया जाएगा. आपको अपने प्रीकैश मेनिफ़ेस्ट में शामिल किसी एचटीएमएल दस्तावेज़ का यूआरएल पास करना होगा. इसका इस्तेमाल सिंगल पेज ऐप्लिकेशन के लिए किया जाता है. इसमें आपको सभी नेविगेशन के लिए, सामान्य ऐप्लिकेशन शेल एचटीएमएल का इस्तेमाल करना होता है.
-
RegExp[] optional
रेगुलर एक्सप्रेशन का एक ऐसा अरे (वैकल्पिक) जो यह तय करता है कि कॉन्फ़िगर किए गए
navigateFallbackका व्यवहार किन यूआरएल पर लागू होगा. यह तब काम का होता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाना चाहिए. अगरnavigateFallbackDenylistऔरnavigateFallbackAllowlist, दोनों कॉन्फ़िगर किए गए हैं, तो अनुमति न दी गई सूची को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल करने से बचें. ऐसा न करने पर, आपकी साइट पर नेविगेट करते समय लोगों को देरी हो सकती है.
-
RegExp[] optional
रेगुलर एक्सप्रेशन का एक ऐसा अरे (वैकल्पिक) जो यह तय करता है कि कॉन्फ़िगर किए गए
navigateFallbackका व्यवहार किन यूआरएल पर लागू होगा. यह तब काम आता है, जब आपकी साइट के यूआरएल के सिर्फ़ सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाना चाहिए. अगरnavigateFallbackDenylistऔरnavigateFallbackAllowlist, दोनों कॉन्फ़िगर किए गए हैं, तो अनुमति न दी गई सूची को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल करने से बचें. ऐसा न करने पर, आपकी साइट पर नेविगेट करते समय लोगों को देरी हो सकती है.
-
बूलियन ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू: 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
रिटर्न
-
Promise<ManifestTransformResult> | ManifestTransformResult
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इंस्टेंस जुड़ जाएगा.-
channelName
string ज़रूरी नहीं है
-
विकल्प
-
-
cacheName
string ज़रूरी नहीं है
अगर यह वैल्यू दी जाती है, तो
cacheNameमें कॉन्फ़िगर किए गएworkbox-strategiesकीcacheNameप्रॉपर्टी सेट हो जाएगी.handler -
cacheableResponse
CacheableResponseOptions optional
इसे कॉन्फ़िगर करने से,
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(डिफ़ॉल्ट) पर सेट होने पर, webpackswSrcफ़ाइल को कंपाइल करेगा.falseहोने पर, कंपाइल नहीं किया जाएगा. साथ ही,webpackCompilationPluginsका इस्तेमाल नहीं किया जा सकेगा. अगर आपको मेनिफ़ेस्ट को किसी फ़ाइल में इंजेक्ट करना है, तो इसेfalseपर सेट करें. उदाहरण के लिए, JSON फ़ाइल. -
swDest
string ज़रूरी नहीं है
इस प्लगिन से बनाई जाने वाली सर्विस वर्कर फ़ाइल का ऐसेट नाम. अगर इसे शामिल नहीं किया जाता है, तो नाम
swSrcके नाम के आधार पर तय किया जाएगा. -
webpackCompilationPlugins
any[] ज़रूरी नहीं
वैकल्पिक
webpackप्लगिन, जिनका इस्तेमालswSrcइनपुट फ़ाइल को कंपाइल करते समय किया जाएगा. यह सिर्फ़ तब मान्य होता है, जबcompileSrctrueहो.
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: '...',
});
पैरामीटर
-
कॉन्फ़िगरेशन
रिटर्न
-
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: ...,
});
पैरामीटर
-
कॉन्फ़िगरेशन
रिटर्न
-
Promise<GetManifestResult>
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: '...',
});
पैरामीटर
-
कॉन्फ़िगरेशन
रिटर्न
-
Promise<BuildResult>