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'
पर वापस आ जाएगी. -
स्ट्रिंग ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू: null
अगर यह जानकारी दी गई है, तो पहले से कैश मेमोरी में सेव नहीं किए गए यूआरएल के लिए, सभी नेविगेशन अनुरोध, दिए गए यूआरएल पर मौजूद एचटीएमएल से पूरे किए जाएंगे. आपको उस एचटीएमएल दस्तावेज़ का यूआरएल डालना होगा जो आपके प्रीकैश मेनिफ़ेस्ट में शामिल है. इसका इस्तेमाल, एक पेज वाले ऐप्लिकेशन के ऐसे मामले में किया जाता है जहां आपको सभी नेविगेशन के लिए, एक ही ऐप्लिकेशन शेल एचटीएमएल का इस्तेमाल करना हो.
-
RegExp[] ज़रूरी नहीं
रेगुलर एक्सप्रेशन का वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया
navigateFallback
व्यवहार किन यूआरएल पर लागू होगा. यह तब काम आता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन के हिस्से के तौर पर माना जाना चाहिए. अगरnavigateFallbackDenylist
औरnavigateFallbackAllowlist
, दोनों को कॉन्फ़िगर किया गया है, तो ब्लैकलिस्ट को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल रेगुलर एक्सप्रेशन का इस्तेमाल करने से बचें. ऐसा न करने पर, आपके उपयोगकर्ताओं को आपकी साइट पर नेविगेट करने में देरी हो सकती है.
-
RegExp[] ज़रूरी नहीं
रेगुलर एक्सप्रेशन का वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया
navigateFallback
व्यवहार किन यूआरएल पर लागू होगा. यह तब काम आता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन के हिस्से के तौर पर माना जाना चाहिए. अगरnavigateFallbackDenylist
औरnavigateFallbackAllowlist
, दोनों को कॉन्फ़िगर किया गया है, तो 'पाबंदी वाली सूची' को प्राथमिकता दी जाती है.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल रेगुलर एक्सप्रेशन का इस्तेमाल करने से बचें. ऐसा न करने पर, आपके उपयोगकर्ताओं को आपकी साइट पर नेविगेट करने में देरी हो सकती है.
-
बूलियन ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू: 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 ज़रूरी नहीं
रिटर्न
-
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
प्रॉपर्टी को सेट कर देगी. -
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: '...',
});
पैरामीटर
-
config
रिटर्न
-
Promise<BuildResult>
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: ...,
});
पैरामीटर
-
config
रिटर्न
-
Promise<GetManifestResult>
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: '...',
});
पैरामीटर
-
config
रिटर्न
-
Promise<BuildResult>