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
(स्ट्रिंग | ManifestEntry)[] ज़रूरी नहीं
बिल्ड कॉन्फ़िगरेशन के हिस्से के तौर पर जनरेट की गई एंट्री के साथ-साथ, ऐसी एंट्री की सूची जिन्हें प्री-कैश किया जाना है.
-
dontCacheBustURLsMatching
RegExp ज़रूरी नहीं
इससे मेल खाने वाली एसेट को उनके यूआरएल के ज़रिए खास तौर पर वर्शन माना जाएगा. साथ ही, प्रीकैश मेमोरी में जानकारी अपने-आप भरने के दौरान, एचटीटीपी कैश-बस्टिंग की प्रोसेस नहीं की जाएगी. हालांकि, यह ज़रूरी नहीं है, लेकिन यह सुझाव दिया जाता है कि अगर आपकी मौजूदा बिल्ड प्रोसेस में हर फ़ाइल नाम में पहले से ही
[hash]
वैल्यू डाली गई है, तो आपको एक RegExp देना होगा जो इसका पता लगा लेगा. ऐसा इसलिए, क्योंकि यह प्रीकैशिंग के दौरान खर्च होने वाली बैंडविथ को कम कर देगा. -
manifestTransforms
ManifestTransform[] ज़रूरी नहीं
एक या एक से ज़्यादा फ़ंक्शन जिन्हें जनरेट किए गए मेनिफ़ेस्ट के क्रम में लागू किया जाएगा. अगर
modifyURLPrefix
याdontCacheBustURLsMatching
के बारे में भी बताया गया है, तो पहले उससे जुड़े ट्रांसफ़ॉर्मेशन लागू किए जाएंगे. -
maximumFileSizeToCacheInBytes
नंबर ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: 2097152
इस वैल्यू का इस्तेमाल, पहले से कैश मेमोरी में सेव की जाने वाली फ़ाइलों का ज़्यादा से ज़्यादा साइज़ तय करने के लिए किया जा सकता है. यह आपको अनजाने में बहुत बड़ी फ़ाइलों को प्री-कैश करने से रोकता है. ऐसा इसलिए, क्योंकि हो सकता है कि आपके किसी पैटर्न से गलती से मैच हो गया हो.
-
modifyURLPrefix
ऑब्जेक्ट ज़रूरी नहीं
ऑब्जेक्ट मैपिंग स्ट्रिंग के प्रीफ़िक्स, स्ट्रिंग की वैल्यू बदलने से जुड़े होते हैं. इसका इस्तेमाल किसी मेनिफ़ेस्ट एंट्री से पाथ प्रीफ़िक्स को हटाने या जोड़ने के लिए किया जा सकता है. ऐसा तब किया जा सकता है, जब वेब होस्टिंग का सेटअप आपके लोकल फ़ाइल सिस्टम के सेटअप से मेल नहीं खाता हो. ज़्यादा सुविधाजनक विकल्प के तौर पर, आपके पास
manifestTransforms
विकल्प का इस्तेमाल करने का विकल्प है. साथ ही, ऐसा फ़ंक्शन उपलब्ध कराया जा सकता है जो आपके दिए गए लॉजिक का इस्तेमाल करके, मेनिफ़ेस्ट में एंट्री में बदलाव करता है.इस्तेमाल के उदाहरण:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
टाइप
> और object
प्रॉपर्टी
-
filePaths
स्ट्रिंग[]
GeneratePartial
प्रॉपर्टी
-
babelPresetEnvTargets
स्ट्रिंग[] ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू यह है: ["chrome >= 56"]
सर्विस वर्कर बंडल को ट्रांसपाइल करते समय,
babel-preset-env
को पास किए जाने वाले टारगेट. -
cacheId
स्ट्रिंग ज़रूरी नहीं
एक वैकल्पिक आईडी, जिसे कैश मेमोरी के नामों के पहले जोड़ा जाएगा. यह मुख्य तौर पर, लोकल डेवलपमेंट के लिए काम का होता है, जहां एक ही
http://localhost:port
ऑरिजिन से कई साइटें दिखाई जा सकती हैं. -
cleanupOutdatedCaches
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: false
क्या Workbox को पुराने और इसके साथ काम न करने वाले वर्शन से बनाए गए किसी भी प्री-कैश को पहचानने और मिटाने की कोशिश करनी चाहिए.
-
clientsClaim
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: false
सर्विस वर्कर के चालू होते ही, उसे किसी भी मौजूदा क्लाइंट को कंट्रोल करना शुरू करना चाहिए या नहीं.
-
directoryIndex
स्ट्रिंग ज़रूरी नहीं
अगर
/
पर खत्म होने वाले यूआरएल के लिए नेविगेशन अनुरोध, पहले से कैश मेमोरी में सेव किए गए यूआरएल से मैच नहीं कर पाता है, तो इस वैल्यू को यूआरएल में जोड़ दिया जाएगा. साथ ही, इसकी जांच की जाएगी कि पहले से कैश मेमोरी में सेव किए गए डेटा से मेल खा रहा है या नहीं. यह इस पर सेट होना चाहिए कि आपका वेब सर्वर अपने डायरेक्ट्री इंडेक्स के लिए किस चीज़ का इस्तेमाल कर रहा है. -
disableDevLogs
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: false
-
ignoreURLParametersMatching
RegExp[] ज़रूरी नहीं
इस कैटगरी में मौजूद किसी भी RegExp से मेल खाने वाले खोज पैरामीटर के नाम, प्रीकैश मैच खोजने से पहले हटा दिए जाएंगे. यह तब फ़ायदेमंद होता है, जब आपके उपयोगकर्ता ऐसे यूआरएल के लिए अनुरोध करें जिनमें ट्रैफ़िक के सोर्स को ट्रैक करने के लिए इस्तेमाल किए गए यूआरएल पैरामीटर शामिल हों. अगर यह पैरामीटर उपलब्ध नहीं कराया गया है, तो डिफ़ॉल्ट वैल्यू
[/^utm_/, /^fbclid$/]
होती है. -
importScripts
स्ट्रिंग[] ज़रूरी नहीं है
उन JavaScript फ़ाइलों की सूची जिन्हें जनरेट की गई सर्विस वर्कर फ़ाइल में
importScripts()
को भेजा जाना चाहिए. यह तब काम आता है, जब आप Workbox को टॉप-लेवल सर्विस वर्कर फ़ाइल बनाने की अनुमति देना चाहते हों, लेकिन आपको कुछ अतिरिक्त कोड शामिल करने की अनुमति देनी हो, जैसे कि पुश इवेंट लिसनर. -
inlineWorkboxRuntime
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: false
वर्कबॉक्स लाइब्रेरी के लिए रनटाइम कोड को टॉप-लेवल सर्विस वर्कर में शामिल किया जाना चाहिए या एक अलग फ़ाइल में बांटा जाना चाहिए या नहीं, जिसे सर्विस वर्कर के साथ डिप्लॉय करने की ज़रूरत होती है. रनटाइम को अलग रखने का मतलब यह है कि जब भी आपका टॉप-लेवल सर्विस वर्कर बदलता है, तो उपयोगकर्ताओं को हर बार Workbox कोड को फिर से डाउनलोड नहीं करना पड़ेगा.
-
मोड
स्ट्रिंग ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: "प्रोडक्शन"
अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो ऑप्टिमाइज़ किया गया सर्विस वर्कर बंडल बनाया जाएगा. इसमें डीबग करने की जानकारी शामिल नहीं होगी. अगर इसे यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो
process.env.NODE_ENV
वैल्यू का इस्तेमाल किया जाएगा. ऐसा न होने पर, वैल्यू वापस'production'
हो जाएगी. -
स्ट्रिंग ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: शून्य
अगर बताया गया है, तो जो यूआरएल पहले से कैश नहीं किए गए हैं उनके सभी नेविगेशन अनुरोधों को, दिए गए यूआरएल पर एचटीएमएल के साथ पूरा किया जाएगा. आपको किसी ऐसे एचटीएमएल दस्तावेज़ का यूआरएल पास करना होगा जो आपके प्रीकैश मेनिफ़ेस्ट में शामिल हो. इसका इस्तेमाल सिंगल पेज ऐप्लिकेशन स्थिति में किया जा सकता है, जिसमें आपको सभी नेविगेशन में सामान्य ऐप्लिकेशन शेल एचटीएमएल का इस्तेमाल करना है.
-
RegExp[] ज़रूरी नहीं
रेगुलर एक्सप्रेशन का एक वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया
navigateFallback
व्यवहार किन यूआरएल पर लागू होता है. यह तब मददगार होता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाए. अगरnavigateFallbackDenylist
औरnavigateFallbackAllowlist
, दोनों को कॉन्फ़िगर किया गया हो, तो ब्लॉकलिस्ट से पहले उदाहरण लागू हो जाएगा.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल न करें वरना आपके उपयोगकर्ताओं को आपकी साइट नेविगेट करने में देरी हो सकती है.
-
RegExp[] ज़रूरी नहीं
रेगुलर एक्सप्रेशन का एक वैकल्पिक कलेक्शन, जो यह तय करता है कि कॉन्फ़िगर किया गया
navigateFallback
व्यवहार किन यूआरएल पर लागू होता है. यह तब मददगार होता है, जब आपकी साइट के यूआरएल के सिर्फ़ एक सबसेट को सिंगल पेज ऐप्लिकेशन का हिस्सा माना जाए. अगरnavigateFallbackDenylist
औरnavigateFallbackAllowlist
, दोनों को कॉन्फ़िगर किया गया हो, तो ब्लॉकलिस्ट को प्राथमिकता दी जाएगी.ध्यान दें: नेविगेशन के दौरान, इन रेगुलर एक्सप्रेशन का आकलन हर डेस्टिनेशन यूआरएल के हिसाब से किया जा सकता है. जटिल RegExps का इस्तेमाल न करें वरना आपके उपयोगकर्ताओं को आपकी साइट नेविगेट करने में देरी हो सकती है.
-
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: 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()
को ट्रिगर कर पाएंगे. -
सोर्समैप
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: true
जनरेट की गई सर्विस वर्कर फ़ाइलों के लिए सोर्समैप बनाना है या नहीं.
GenerateSWOptions
टाइप
GetManifestOptions
GetManifestResult
प्रॉपर्टी
-
सोलर पैनलों की संख्या
नंबर
-
manifestEntries
-
साइज़
नंबर
-
चेतावनियां
स्ट्रिंग[]
GlobPartial
प्रॉपर्टी
-
globFollow
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: true
यह तय करता है कि प्रीकैश मेनिफ़ेस्ट जनरेट करते समय, सिमलिंक का इस्तेमाल किया जाता है या नहीं. ज़्यादा जानकारी के लिए,
glob
दस्तावेज़ मेंfollow
की परिभाषा देखें. -
globIgnores
स्ट्रिंग[] ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू यह है: ["**\/node_modules\/**\/*"]
प्रीकैश मेनिफ़ेस्ट को जनरेट करते समय, फ़ाइलों से मैच करने वाले पैटर्न का सेट, जिसे हमेशा बाहर रखा जाता है. ज़्यादा जानकारी के लिए,
glob
दस्तावेज़ मेंignore
की परिभाषा देखें. -
globPatterns
स्ट्रिंग[] ज़रूरी नहीं है
डिफ़ॉल्ट वैल्यू यह है: ["**\/*.{js,vasm,css,html}"]
इनमें से किसी भी पैटर्न से मेल खाने वाली फ़ाइलों को प्री-कैश मेनिफ़ेस्ट में शामिल किया जाएगा. ज़्यादा जानकारी के लिए,
glob
प्राइमर देखें. -
globStrict
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: true
सही होने पर, प्रीकैश मेनिफ़ेस्ट जनरेट करते समय डायरेक्ट्री को पढ़ने में गड़बड़ी की वजह से, बिल्ड नहीं हो पाएगा. गलत होने पर, समस्या वाली डायरेक्ट्री को स्किप कर दिया जाएगा. ज़्यादा जानकारी के लिए,
glob
दस्तावेज़ मेंstrict
की परिभाषा देखें. -
templatedURLs
ऑब्जेक्ट ज़रूरी नहीं
अगर किसी यूआरएल को सर्वर साइड लॉजिक के आधार पर रेंडर किया जाता है, तो उसका कॉन्टेंट कई फ़ाइलों या दूसरी यूनीक स्ट्रिंग वैल्यू पर निर्भर हो सकता है. इस ऑब्जेक्ट में मौजूद कुंजियां, सर्वर से रेंडर किए गए यूआरएल हैं. अगर वैल्यू स्ट्रिंग की एक कलेक्शन हैं, तो उन्हें
glob
पैटर्न के तौर पर माना जाएगा. साथ ही, पैटर्न से मेल खाने वाली किसी भी फ़ाइल के कॉन्टेंट का इस्तेमाल, यूआरएल को खास तरीके से वर्शन करने के लिए किया जाएगा. अगर इसका इस्तेमाल एक ही स्ट्रिंग के साथ किया जाता है, तो इसे वर्शन की यूनीक जानकारी के तौर पर माना जाएगा, जिसे आपने किसी यूआरएल के लिए जनरेट किया है.
InjectManifestOptions
टाइप
InjectPartial
प्रॉपर्टी
-
injectionPoint
स्ट्रिंग ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू है: "self.__WB_MANIFEST"
swSrc
फ़ाइल में खोजी जाने वाली स्ट्रिंग. मिल जाने पर, इसे जनरेट किए गए प्रीकैश मेनिफ़ेस्ट से बदल दिया जाएगा. -
swSrc
स्ट्रिंग
उस सर्विस वर्कर फ़ाइल का पाथ और फ़ाइल नाम जिसे बिल्ड प्रोसेस के दौरान पढ़ा जाएगा, जो मौजूदा वर्क डायरेक्ट्री से मेल खाता है.
ManifestEntry
प्रॉपर्टी
-
रखरखाव करना
स्ट्रिंग ज़रूरी नहीं
-
बदलाव
स्ट्रिंग
-
यूआरएल
स्ट्रिंग
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
टाइप
function
पैरामीटर
-
manifestEntries
(ManifestEntry और ऑब्जेक्ट)[]
-
साइज़
नंबर
-
-
कंपाइलेशन
पता नहीं ज़रूरी नहीं
लौटाए गए प्रॉडक्ट
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
प्रॉपर्टी
-
मेनिफ़ेस्ट
(ManifestEntry और ऑब्जेक्ट)[]
-
साइज़
नंबर
-
-
चेतावनियां
स्ट्रिंग[] ज़रूरी नहीं है
OptionalGlobDirectoryPartial
प्रॉपर्टी
-
globDirectory
स्ट्रिंग ज़रूरी नहीं
वह लोकल डायरेक्ट्री जिससे आपको
globPatterns
का मिलान करना है. पाथ मौजूदा डायरेक्ट्री के मुताबिक है.
RequiredGlobDirectoryPartial
प्रॉपर्टी
-
globDirectory
स्ट्रिंग
वह लोकल डायरेक्ट्री जिससे आपको
globPatterns
का मिलान करना है. पाथ मौजूदा डायरेक्ट्री के मुताबिक है.
RequiredSWDestPartial
प्रॉपर्टी
-
swDest
स्ट्रिंग
उस सर्विस वर्कर फ़ाइल का पाथ और फ़ाइल नाम होता है जिसे बिल्ड प्रोसेस से बनाया जाएगा. यह मौजूदा डायरेक्ट्री से मेल खाता है. यह '.js' पर खत्म होना चाहिए.
RuntimeCaching
प्रॉपर्टी
-
हैंडलर
इससे तय होता है कि रनटाइम रूट, रिस्पॉन्स कैसे जनरेट करेगा. पहले से मौजूद
workbox-strategies
में से किसी एक का इस्तेमाल करने के लिए, उसका नाम बताएं, जैसे कि'NetworkFirst'
. इसके अलावा, यह कस्टम रिस्पॉन्स लॉजिक वालाworkbox-core.RouteHandler
कॉलबैक फ़ंक्शन हो सकता है. -
method
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
इंस्टेंस जुड़ जाएगा. -
expiration
ExpirationPluginOptions ज़रूरी नहीं है
इसे कॉन्फ़िगर करने से,
handler
में कॉन्फ़िगर किए गएworkbox-strategies
में एकworkbox-expiration.ExpirationPlugin
इंस्टेंस जुड़ जाएगा. -
fetchOptions
requestInit ज़रूरी नहीं
इसे कॉन्फ़िगर करने के बाद,
fetchOptions
वैल्यू,handler
में कॉन्फ़िगर किए गएworkbox-strategies
के साथ पास हो जाएगी. -
matchOptions
CashQueryOptions ज़रूरी नहीं
इसे कॉन्फ़िगर करने के बाद,
matchOptions
वैल्यू,handler
में कॉन्फ़िगर किए गएworkbox-strategies
के साथ पास हो जाएगी. -
networkTimeoutSeconds
नंबर ज़रूरी नहीं
अगर यह पैरामीटर दिया जाता है, तो
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
स्ट्रिंग | RegExp | RouteMatchCallback
मिलान की इस शर्त से तय होता है कि कॉन्फ़िगर किया गया हैंडलर, पहले से कैश मेमोरी में सेव किए गए किसी भी यूआरएल से मेल न खाने वाले अनुरोधों के लिए रिस्पॉन्स जनरेट करेगा या नहीं. अगर एक से ज़्यादा
RuntimeCaching
रूट तय किए गए हैं, तोurlPattern
से मेल खाने वाला पहला रूट ही रिस्पॉन्स जनरेट करेगा.यह वैल्यू, सीधे
workbox-routing.registerRoute
को पास किए गए पहले पैरामीटर से मैप होती है. हमारा सुझाव है कि अपने काम को आसान बनाने के लिए,workbox-core.RouteMatchCallback
फ़ंक्शन का इस्तेमाल करें.
StrategyName
Enum
"NetworkFirst"
"NetworkOnly"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
प्रॉपर्टी
-
importScriptsViaChunks
स्ट्रिंग[] ज़रूरी नहीं है
वेबपैक डेटा के एक या एक से ज़्यादा नाम. इन हिस्सों का कॉन्टेंट,
importScripts()
को कॉल करके जनरेट किए गए सर्विस वर्कर में शामिल किया जाएगा. -
swDest
स्ट्रिंग ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: "service-worker.js"
इस प्लग इन के ज़रिए बनाई गई सर्विस वर्कर फ़ाइल का एसेट नाम.
WebpackInjectManifestOptions
टाइप
WebpackInjectManifestPartial
प्रॉपर्टी
-
compileSrc
बूलियन ज़रूरी नहीं
डिफ़ॉल्ट वैल्यू यह है: true
true
(डिफ़ॉल्ट तौर पर) होने पर,swSrc
फ़ाइल को वेबपैक की मदद से कंपाइल किया जाएगा.false
होने पर, कंपाइलेशन नहीं होगा औरwebpackCompilationPlugins
का इस्तेमाल नहीं किया जा सकता. अगर आपको मेनिफ़ेस्ट फ़ाइल, जैसे कि किसी JSON फ़ाइल में इंजेक्ट करनी है, तोfalse
पर सेट करें. -
swDest
स्ट्रिंग ज़रूरी नहीं
इस प्लग इन से बनाई जाने वाली सर्विस वर्कर फ़ाइल का एसेट नाम. अगर इसे मिटाया जाता है, तो यह नाम
swSrc
के नाम के हिसाब से दिया जाएगा. -
webpackCompilationPlugins
कोई भी[] ज़रूरी नहीं
वैकल्पिक
webpack
प्लगिन का इस्तेमाल,swSrc
इनपुट फ़ाइल को कंपाइल करते समय किया जाएगा. सिर्फ़ तब मान्य है, जबcompileSrc
true
हो.
WebpackPartial
प्रॉपर्टी
-
हिस्से
स्ट्रिंग[] ज़रूरी नहीं है
एक या एक से ज़्यादा समूह के नाम जिनकी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल किया जाना चाहिए.
-
छोड़ें
(स्ट्रिंग | RegExp | फ़ंक्शन)[] ज़रूरी नहीं
प्रीकैश मेनिफ़ेस्ट से एसेट को बाहर रखने के लिए, एक या एक से ज़्यादा खास जानकारी का इस्तेमाल किया गया. इसे
webpack
के स्टैंडर्डexclude
विकल्प के तौर पर, इन नियमों के हिसाब से ही समझा जाता है. अगर यह पैरामीटर उपलब्ध नहीं कराया जाता, तो डिफ़ॉल्ट तौर पर यह[/\.map$/, /^manifest.*\.js$]
वैल्यू होती है. -
excludeChunks
स्ट्रिंग[] ज़रूरी नहीं है
एक या एक से ज़्यादा समूह के नाम जिनकी आउटपुट फ़ाइलों को प्रीकैश मेनिफ़ेस्ट में शामिल नहीं किया जाना चाहिए.
-
शामिल करें
(स्ट्रिंग | RegExp | फ़ंक्शन)[] ज़रूरी नहीं
प्रीकैश मेनिफ़ेस्ट में एसेट को शामिल करने के लिए, एक या एक से ज़्यादा जानकारी का इस्तेमाल किया गया. इसे
webpack
के स्टैंडर्डinclude
विकल्प के तौर पर, इन नियमों के हिसाब से ही समझा जाता है. -
मोड
स्ट्रिंग ज़रूरी नहीं
अगर इसे 'प्रोडक्शन' पर सेट किया जाता है, तो ऑप्टिमाइज़ किया गया सर्विस वर्कर बंडल बनाया जाएगा. इसमें डीबग करने की जानकारी शामिल नहीं होगी. अगर यहां साफ़ तौर पर कॉन्फ़िगर नहीं किया गया है, तो मौजूदा
webpack
कंपाइलेशन में कॉन्फ़िगर की गईmode
वैल्यू का इस्तेमाल किया जाएगा.
तरीके
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
यह Workbox में इस्तेमाल की जाने वाली रनटाइम लाइब्रेरी के सेट को लोकल डायरेक्ट्री में कॉपी करता है. इसे आपकी सर्विस वर्कर फ़ाइल के साथ डिप्लॉय किया जाना चाहिए.
इन लोकल कॉपी को डिप्लॉय करने के बजाय, इनके आधिकारिक सीडीएन यूआरएल से Workbox का इस्तेमाल किया जा सकता है.
इस तरीके का इस्तेमाल, workbox-build.injectManifest
का इस्तेमाल करने वाले उन डेवलपर के लिए किया जा सकता है जो Workbox की सीडीएन कॉपी का इस्तेमाल नहीं करना चाहते. workbox-build.generateSW
का इस्तेमाल करने वाले डेवलपर को, इस तरीके को सीधे तौर पर कॉल करने की ज़रूरत नहीं है.
पैरामीटर
-
destDirectory
स्ट्रिंग
पैरंट डायरेक्ट्री का पाथ, जिसके तहत लाइब्रेरी की नई डायरेक्ट्री बनाई जाएगी.
लौटाए गए प्रॉडक्ट
-
प्रॉमिस<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: '...',
});
पैरामीटर
-
कॉन्फ़िगरेशन
लौटाए गए प्रॉडक्ट
-
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: ...,
});
पैरामीटर
-
कॉन्फ़िगरेशन
लौटाए गए प्रॉडक्ट
-
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: '...',
});
पैरामीटर
-
कॉन्फ़िगरेशन
लौटाए गए प्रॉडक्ट
-
Promise<BuildResult>