workbox-build মডিউলটি একটি নোড-ভিত্তিক বিল্ড প্রক্রিয়ার সাথে একীভূত হয় এবং একটি সম্পূর্ণ পরিষেবা কর্মী তৈরি করতে পারে, অথবা কেবল প্রিক্যাশে সম্পদের একটি তালিকা তৈরি করতে পারে যা বিদ্যমান পরিষেবা কর্মীর মধ্যে ব্যবহার করা যেতে পারে।
বেশিরভাগ ডেভেলপাররা যে দুটি মোড ব্যবহার করবেন তা হল generateSW এবং injectManifest । নিম্নলিখিত প্রশ্নের উত্তরগুলি আপনাকে সঠিক মোড এবং ব্যবহারের জন্য কনফিগারেশন বেছে নিতে সাহায্য করতে পারে।
কোন মোড ব্যবহার করবেন
generateSW
generateSW মোড আপনার জন্য একটি সার্ভিস ওয়ার্কার ফাইল তৈরি করে, কনফিগারেশন বিকল্পের মাধ্যমে কাস্টমাইজ করা হয় এবং এটি ডিস্কে লিখে রাখে।
কখন generateSW ব্যবহার করবেন
- তুমি ফাইলগুলো প্রিক্যাশে করতে চাও।
- আপনার সহজ রানটাইম ক্যাশিং প্রয়োজন।
কখন generateSW ব্যবহার করবেন না
- আপনি অন্যান্য Service Worker বৈশিষ্ট্যগুলি (যেমন Web Push ) ব্যবহার করতে চান।
- আপনি অতিরিক্ত স্ক্রিপ্ট আমদানি করতে চান, অথবা কাস্টম ক্যাশিং কৌশলের জন্য অতিরিক্ত লজিক যোগ করতে চান।
injectManifest
injectManifest মোড প্রিক্যাশে করার জন্য URL গুলির একটি তালিকা তৈরি করবে এবং সেই প্রিক্যাশে ম্যানিফেস্টটি একটি বিদ্যমান সার্ভিস ওয়ার্কার ফাইলে যুক্ত করবে। অন্যথায় এটি ফাইলটিকে যেমন আছে তেমনই রেখে দেবে।
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
বৈশিষ্ট্য
- অতিরিক্ত প্রকাশনাএন্ট্রি
(স্ট্রিং | ম্যানিফেস্টএন্ট্রি )[] ঐচ্ছিক
বিল্ড কনফিগারেশনের অংশ হিসেবে তৈরি করা যেকোনো এন্ট্রি ছাড়াও, প্রি-ক্যাশে করা এন্ট্রিগুলির একটি তালিকা।
- dontCacheBustURLsMatching সম্পর্কে
RegExp ঐচ্ছিক
এর সাথে মেলে এমন সম্পদগুলিকে তাদের URL এর মাধ্যমে অনন্যভাবে সংস্করণ করা হবে বলে ধরে নেওয়া হবে এবং প্রিক্যাশে পপুলেট করার সময় করা স্বাভাবিক HTTP ক্যাশে-বাস্টিং থেকে অব্যাহতি দেওয়া হবে। যদিও এটি প্রয়োজনীয় নয়, তবে এটি সুপারিশ করা হয় যে আপনার বিদ্যমান বিল্ড প্রক্রিয়াটি যদি ইতিমধ্যেই প্রতিটি ফাইলের নামের মধ্যে একটি
[hash]মান সন্নিবেশ করে, তাহলে আপনি একটি RegExp প্রদান করুন যা এটি সনাক্ত করবে, কারণ এটি প্রিক্যাশ করার সময় ব্যবহৃত ব্যান্ডউইথকে হ্রাস করবে। - ম্যানিফেস্টট্রান্সফর্মস
ম্যানিফেস্টট্রান্সফর্ম [] ঐচ্ছিক
এক বা একাধিক ফাংশন যা জেনারেট করা ম্যানিফেস্টের বিরুদ্ধে ক্রমানুসারে প্রয়োগ করা হবে। যদি
modifyURLPrefixবাdontCacheBustURLsMatchingনির্দিষ্ট করা থাকে, তাহলে তাদের সংশ্লিষ্ট রূপান্তরগুলি প্রথমে প্রয়োগ করা হবে। - সর্বোচ্চ ফাইলের আকার টু ক্যাশেইনবাইটস
সংখ্যা ঐচ্ছিক
ডিফল্ট মান হল: 2097152
এই মানটি প্রিক্যাশ করা ফাইলের সর্বাধিক আকার নির্ধারণ করতে ব্যবহার করা যেতে পারে। এটি আপনাকে অসাবধানতাবশত খুব বড় ফাইলগুলিকে প্রিক্যাশ করা থেকে বিরত রাখে যা দুর্ঘটনাক্রমে আপনার কোনও প্যাটার্নের সাথে মিলে যেতে পারে।
- URL প্রিফিক্স পরিবর্তন করুন
ঐচ্ছিক বস্তু
একটি অবজেক্ট ম্যাপিং স্ট্রিং প্রিফিক্স রিপ্লেসমেন্ট স্ট্রিং ভ্যালুর সাথে যুক্ত করে। এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, যদি আপনার ওয়েব হোস্টিং সেটআপ আপনার স্থানীয় ফাইল সিস্টেম সেটআপের সাথে মেলে না, তাহলে একটি ম্যানিফেস্ট এন্ট্রি থেকে একটি পাথ প্রিফিক্স অপসারণ বা যোগ করতে। আরও নমনীয়তার বিকল্প হিসাবে, আপনি
manifestTransformsবিকল্পটি ব্যবহার করতে পারেন এবং একটি ফাংশন প্রদান করতে পারেন যা আপনার প্রদত্ত যেকোনো যুক্তি ব্যবহার করে ম্যানিফেস্টে এন্ট্রিগুলিকে পরিবর্তন করে।ব্যবহারের উদাহরণ:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
আদর্শ
বাদ দিন< GetManifestResult "manifestEntry"
> & বস্তু
বৈশিষ্ট্য
- ফাইলপথ
স্ট্রিং[]
GeneratePartial
বৈশিষ্ট্য
- babelPresetEnvTargets সম্পর্কে
স্ট্রিং[] ঐচ্ছিক
ডিফল্ট মান হল: ["chrome >= 56"]
সার্ভিস ওয়ার্কার বান্ডেল ট্রান্সপাইল করার সময়
babel-preset-envএ পাস করার লক্ষ্যগুলি । - ক্যাশে আইডি
স্ট্রিং ঐচ্ছিক
নাম ক্যাশে করার জন্য একটি ঐচ্ছিক আইডি যুক্ত করতে হবে। এটি প্রাথমিকভাবে স্থানীয় ডেভেলপমেন্টের জন্য কার্যকর যেখানে একই
http://localhost:portorigin থেকে একাধিক সাইট পরিবেশিত হতে পারে। - পরিষ্কার করাপুরাতন ক্যাশে
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
ওয়ার্কবক্স কি পুরোনো, বেমানান সংস্করণ দ্বারা তৈরি কোনও প্রিক্যাশ সনাক্ত এবং মুছে ফেলার চেষ্টা করবে কিনা।
- ক্লায়েন্ট দাবি
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
পরিষেবা কর্মী সক্রিয় হওয়ার সাথে সাথে বিদ্যমান ক্লায়েন্টদের নিয়ন্ত্রণ করা শুরু করবেন কিনা।
- ডিরেক্টরিসূচী
স্ট্রিং ঐচ্ছিক
যদি
/দিয়ে শেষ হওয়া URL-এর জন্য নেভিগেশন অনুরোধটি একটি প্রিক্যাশ করা URL-এর সাথে মেলে না, তাহলে এই মানটি URL-এর সাথে যুক্ত করা হবে এবং এটি একটি প্রিক্যাশ মিলের জন্য পরীক্ষা করা হবে। এটি আপনার ওয়েব সার্ভার তার ডিরেক্টরি সূচকের জন্য যা ব্যবহার করছে তাতে সেট করা উচিত। - ডেভেলগগুলি অক্ষম করুন
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
- উপেক্ষা করুন URL পরামিতি মিলছে
RegExp[] ঐচ্ছিক
এই অ্যারের RegExp-এর যেকোনো একটির সাথে মিলিত যেকোনো অনুসন্ধান প্যারামিটারের নাম প্রিক্যাশে মিল খোঁজার আগে মুছে ফেলা হবে। এটি কার্যকর যদি আপনার ব্যবহারকারীরা এমন URL অনুরোধ করতে পারেন যাতে, উদাহরণস্বরূপ, ট্র্যাফিকের উৎস ট্র্যাক করার জন্য ব্যবহৃত URL প্যারামিটার থাকে। যদি না দেওয়া থাকে, তাহলে ডিফল্ট মান হল
[/^utm_/, /^fbclid$/]। - ইম্পোর্টস্ক্রিপ্ট
স্ট্রিং[] ঐচ্ছিক
জেনারেটেড সার্ভিস ওয়ার্কার ফাইলের ভেতরে
importScripts()এ পাস করা উচিত এমন জাভাস্ক্রিপ্ট ফাইলের একটি তালিকা। এটি তখন কার্যকর যখন আপনি ওয়ার্কবক্সকে আপনার শীর্ষ-স্তরের সার্ভিস ওয়ার্কার ফাইল তৈরি করতে দিতে চান, কিন্তু কিছু অতিরিক্ত কোড অন্তর্ভুক্ত করতে চান, যেমন একটি পুশ ইভেন্ট লিসেনার। - ইনলাইনওয়ার্কবক্স রানটাইম
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
ওয়ার্কবক্স লাইব্রেরির রানটাইম কোডটি টপ-লেভেল সার্ভিস ওয়ার্কারে অন্তর্ভুক্ত করা উচিত, নাকি সার্ভিস ওয়ার্কারের পাশাপাশি স্থাপন করা প্রয়োজন এমন একটি পৃথক ফাইলে বিভক্ত করা উচিত। রানটাইম আলাদা রাখার অর্থ হল ব্যবহারকারীদের প্রতিবার আপনার টপ-লেভেল সার্ভিস ওয়ার্কার পরিবর্তন করার সময় ওয়ার্কবক্স কোডটি পুনরায় ডাউনলোড করতে হবে না।
- মোড
স্ট্রিং ঐচ্ছিক
ডিফল্ট মান হল: "উৎপাদন"
যদি 'production' তে সেট করা থাকে, তাহলে একটি অপ্টিমাইজড সার্ভিস ওয়ার্কার বান্ডেল তৈরি করা হবে যা ডিবাগিং তথ্য বাদ দেবে। যদি এখানে স্পষ্টভাবে কনফিগার করা না থাকে, তাহলে
process.env.NODE_ENVমান ব্যবহার করা হবে, এবং এটি ব্যর্থ হলে, এটি'production'তে ফিরে যাবে। স্ট্রিং ঐচ্ছিক
ডিফল্ট মান হল: null
যদি নির্দিষ্ট করা থাকে, তাহলে প্রিক্যাশ করা হয়নি এমন URL গুলির জন্য সমস্ত নেভিগেশন অনুরোধ প্রদত্ত URL-এ HTML দিয়ে পূরণ করা হবে। আপনাকে অবশ্যই আপনার প্রিক্যাশ ম্যানিফেস্টে তালিকাভুক্ত একটি HTML ডকুমেন্টের URL পাস করতে হবে। এটি একটি একক পৃষ্ঠা অ্যাপ দৃশ্যকল্পে ব্যবহার করার জন্য তৈরি, যেখানে আপনি চান যে সমস্ত নেভিগেশন সাধারণ অ্যাপ শেল HTML ব্যবহার করুক।
RegExp[] ঐচ্ছিক
একটি ঐচ্ছিক রেগুলার এক্সপ্রেশন অ্যারে যা কনফিগার করা
navigateFallbackআচরণ কোন URL-এ প্রযোজ্য তা সীমাবদ্ধ করে। এটি কার্যকর যদি আপনার সাইটের URL-এর শুধুমাত্র একটি উপসেটকে একটি Single Page App- এর অংশ হিসেবে বিবেচনা করা হয়। যদিnavigateFallbackDenylistএবংnavigateFallbackAllowlistউভয়ই কনফিগার করা থাকে, তাহলে denylist অগ্রাধিকার পাবে।দ্রষ্টব্য : নেভিগেশনের সময় প্রতিটি গন্তব্য URL এর সাথে এই RegExps মূল্যায়ন করা যেতে পারে। জটিল RegExps ব্যবহার করা এড়িয়ে চলুন, অন্যথায় আপনার ব্যবহারকারীরা আপনার সাইট নেভিগেট করার সময় বিলম্ব দেখতে পাবেন।
RegExp[] ঐচ্ছিক
একটি ঐচ্ছিক রেগুলার এক্সপ্রেশন অ্যারে যা কনফিগার করা
navigateFallbackআচরণ কোন URL-এ প্রযোজ্য তা সীমাবদ্ধ করে। এটি কার্যকর যদি আপনার সাইটের URL-এর শুধুমাত্র একটি উপসেটকে একটি Single Page App- এর অংশ হিসেবে বিবেচনা করা হয়। যদিnavigateFallbackDenylistএবংnavigateFallbackAllowlistউভয়ই কনফিগার করা থাকে, তাহলে denylist-কে প্রাধান্য দেওয়া হয়।দ্রষ্টব্য : নেভিগেশনের সময় প্রতিটি গন্তব্য URL এর সাথে এই RegExps মূল্যায়ন করা যেতে পারে। জটিল RegExps ব্যবহার করা এড়িয়ে চলুন, অন্যথায় আপনার ব্যবহারকারীরা আপনার সাইট নেভিগেট করার সময় বিলম্ব দেখতে পাবেন।
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
জেনারেটেড সার্ভিস ওয়ার্কারে নেভিগেশন প্রিলোড সক্ষম করা হবে কিনা। সত্য হিসেবে সেট করা হলে, আপনাকে একটি উপযুক্ত প্রতিক্রিয়া কৌশল সেট আপ করতে
runtimeCachingব্যবহার করতে হবে যা নেভিগেশন অনুরোধের সাথে মেলে এবং প্রিলোডেড প্রতিক্রিয়া ব্যবহার করবে।- অফলাইনগুগলঅ্যানালিটিক্স
বুলিয়ান | গুগল অ্যানালিটিক্স ইনিশিয়ালাইজ অপশন ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
অফলাইন Google Analytics এর জন্য সমর্থন অন্তর্ভুক্ত করা হবে কিনা তা নিয়ন্ত্রণ করে। যখন
true, তখনworkbox-google-analyticsএরinitialize()এর কলটি আপনার জেনারেটেড সার্ভিস ওয়ার্কারে যোগ করা হবে। যখন একটিObjectএ সেট করা হয়, তখন সেই অবজেক্টটিinitialize()কলে পাস করা হবে, যা আপনাকে আচরণটি কাস্টমাইজ করার অনুমতি দেবে। - রানটাইম ক্যাশিং
রানটাইমক্যাশিং [] ঐচ্ছিক
আপনার সার্ভিস ওয়ার্কার তৈরি করার জন্য ওয়ার্কবক্সের বিল্ড টুল ব্যবহার করার সময়, আপনি এক বা একাধিক রানটাইম ক্যাশিং কনফিগারেশন নির্দিষ্ট করতে পারেন। এরপর আপনার সংজ্ঞায়িত ম্যাচ এবং হ্যান্ডলার কনফিগারেশন ব্যবহার করে এগুলি
workbox-routing.registerRouteকলে অনুবাদ করা হয়।সকল বিকল্পের জন্য,
workbox-build.RuntimeCachingডকুমেন্টেশন দেখুন। নীচের উদাহরণটি একটি সাধারণ কনফিগারেশন দেখায়, যেখানে দুটি রানটাইম রুট সংজ্ঞায়িত করা হয়েছে: - অপেক্ষা করা ছেড়ে দিন
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: মিথ্যা
জেনারেটেড সার্ভিস ওয়ার্কারে
skipWaiting()এ একটি নিঃশর্ত কল যোগ করা হবে কিনা। যদিfalse, তাহলে পরিবর্তে একটিmessageশ্রোতা যোগ করা হবে, যা ক্লায়েন্ট পৃষ্ঠাগুলিকে একটি অপেক্ষমাণ সার্ভিস ওয়ার্কারেpostMessage({type: 'SKIP_WAITING'})কল করেskipWaiting()ট্রিগার করার অনুমতি দেবে। - সোর্সম্যাপ
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: সত্য
জেনারেট করা সার্ভিস ওয়ার্কার ফাইলগুলির জন্য একটি সোর্সম্যাপ তৈরি করবেন কিনা।
GenerateSWOptions
আদর্শ
বেসআংশিক এবং গ্লোবআংশিক এবং জেনারেটআংশিক এবং প্রয়োজনীয়SWDest আংশিক এবং ঐচ্ছিকগ্লোবডাইরেক্টরিআংশিক
GetManifestOptions
আদর্শ
GetManifestResult
বৈশিষ্ট্য
- গণনা
সংখ্যা
- ম্যানিফেস্টএন্ট্রি
- আকার
সংখ্যা
- সতর্কতা
স্ট্রিং[]
GlobPartial
বৈশিষ্ট্য
- গ্লোবফলো করুন
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: সত্য
প্রিক্যাশ ম্যানিফেস্ট তৈরি করার সময় সিমলিঙ্কগুলি অনুসরণ করা হচ্ছে কিনা তা নির্ধারণ করে। আরও তথ্যের জন্য,
globডকুমেন্টেশনেfollowসংজ্ঞা দেখুন। - গ্লোব উপেক্ষা করে
স্ট্রিং[] ঐচ্ছিক
ডিফল্ট মান হল: ["**\/node_modules\/**\/*"]
প্রিক্যাশ ম্যানিফেস্ট তৈরি করার সময় সর্বদা বাদ দেওয়ার জন্য ফাইলগুলির সাথে মিলে যাওয়া প্যাটার্নের একটি সেট। আরও তথ্যের জন্য,
globডকুমেন্টেশনেignoreসংজ্ঞাটি দেখুন। - গ্লোবপ্যাটার্নস
স্ট্রিং[] ঐচ্ছিক
ডিফল্ট মান হল: ["**\/*.js,wasm,css,html}"]
এই প্যাটার্নগুলির যেকোনো একটির সাথে মিলে যাওয়া ফাইলগুলি প্রিক্যাশ ম্যানিফেস্টে অন্তর্ভুক্ত করা হবে। আরও তথ্যের জন্য,
globপ্রাইমার দেখুন। - টেমপ্লেট করা URL গুলি
ঐচ্ছিক বস্তু
যদি কোনও URL সার্ভার-সাইড লজিকের উপর ভিত্তি করে রেন্ডার করা হয়, তাহলে এর বিষয়বস্তু একাধিক ফাইল বা অন্য কোনও অনন্য স্ট্রিং মানের উপর নির্ভর করতে পারে। এই অবজেক্টের কীগুলি সার্ভার-রেন্ডার করা URL। যদি মানগুলি স্ট্রিংয়ের একটি অ্যারে হয়, তাহলে সেগুলিকে
globপ্যাটার্ন হিসাবে ব্যাখ্যা করা হবে এবং প্যাটার্নের সাথে মিলে যাওয়া যেকোনো ফাইলের বিষয়বস্তু URLটিকে অনন্যভাবে সংস্করণ করতে ব্যবহার করা হবে। যদি একটি একক স্ট্রিংয়ের সাথে ব্যবহার করা হয়, তাহলে এটি একটি নির্দিষ্ট URL এর জন্য আপনার তৈরি করা অনন্য সংস্করণ তথ্য হিসাবে ব্যাখ্যা করা হবে।
InjectManifestOptions
আদর্শ
InjectPartial
বৈশিষ্ট্য
- ইনজেকশনপয়েন্ট
স্ট্রিং ঐচ্ছিক
ডিফল্ট মান হল: "self.__WB_MANIFEST"
swSrcফাইলের ভিতরে যে স্ট্রিংটি খুঁজে বের করতে হবে। একবার খুঁজে পেলে, এটি তৈরি হওয়া প্রিক্যাশ ম্যানিফেস্ট দ্বারা প্রতিস্থাপিত হবে। - swSrc সম্পর্কে
স্ট্রিং
বর্তমান ওয়ার্কিং ডিরেক্টরির সাপেক্ষে, বিল্ড প্রক্রিয়ার সময় পঠিত পরিষেবা কর্মী ফাইলের পাথ এবং ফাইলের নাম।
ManifestEntry
বৈশিষ্ট্য
- সততা
স্ট্রিং ঐচ্ছিক
- সংশোধন
স্ট্রিং
- ইউআরএল
স্ট্রিং
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
আদর্শ
ফাংশন
পরামিতি
- ম্যানিফেস্টএন্ট্রি
( ম্যানিফেস্টএন্ট্রি এবং অবজেক্ট)[]
- আকার
সংখ্যা
- সংকলন
অজানা ঐচ্ছিক
রিটার্নস
প্রতিশ্রুতি< ম্যানিফেস্টট্রান্সফর্মরেজাল্ট > | ম্যানিফেস্টট্রান্সফর্মরেজাল্ট
ManifestTransformResult
বৈশিষ্ট্য
- প্রকাশ করা
( ম্যানিফেস্টএন্ট্রি এবং অবজেক্ট)[]
- আকার
সংখ্যা
- সতর্কতা
স্ট্রিং[] ঐচ্ছিক
OptionalGlobDirectoryPartial
বৈশিষ্ট্য
- গ্লোব ডিরেক্টরি
স্ট্রিং ঐচ্ছিক
আপনি যে স্থানীয় ডিরেক্টরির সাথে
globPatternsমেলাতে চান। পাথটি বর্তমান ডিরেক্টরির সাথে সম্পর্কিত।
RequiredGlobDirectoryPartial
বৈশিষ্ট্য
- গ্লোব ডিরেক্টরি
স্ট্রিং
আপনি যে স্থানীয় ডিরেক্টরির সাথে
globPatternsমেলাতে চান। পাথটি বর্তমান ডিরেক্টরির সাথে সম্পর্কিত।
RequiredSWDestPartial
বৈশিষ্ট্য
- swDest সম্পর্কে
স্ট্রিং
বর্তমান ওয়ার্কিং ডিরেক্টরির সাপেক্ষে বিল্ড প্রক্রিয়ার মাধ্যমে তৈরি করা সার্ভিস ওয়ার্কার ফাইলের পাথ এবং ফাইলের নাম। এটি অবশ্যই '.js' দিয়ে শেষ হবে।
RuntimeCaching
বৈশিষ্ট্য
- হ্যান্ডলার
এটি নির্ধারণ করে যে রানটাইম রুট কীভাবে প্রতিক্রিয়া তৈরি করবে। অন্তর্নির্মিত
workbox-strategiesব্যবহার করতে, এর নামটি প্রদান করুন, যেমন'NetworkFirst'। বিকল্পভাবে, এটি কাস্টম প্রতিক্রিয়া লজিক সহ একটিworkbox-core.RouteHandlerকলব্যাক ফাংশন হতে পারে। - পদ্ধতি
HTTP পদ্ধতি ঐচ্ছিক
ডিফল্ট মান হল: "GET"
যে HTTP পদ্ধতির সাথে মেলাতে হবে।
'GET'এর ডিফল্ট মান সাধারণত যথেষ্ট, যদি না আপনার স্পষ্টভাবে'POST','PUT', অথবা অন্য কোন ধরণের অনুরোধ মেলাতে হয়। - বিকল্পগুলি
ঐচ্ছিক বস্তু
- ব্যাকগ্রাউন্ডসিঙ্ক
ঐচ্ছিক বস্তু
এটি কনফিগার করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-background-sync.BackgroundSyncPluginইনস্ট্যান্স যোগ হবে।- নাম
স্ট্রিং
- বিকল্পগুলি
সারি বিকল্প ঐচ্ছিক
- সম্প্রচার আপডেট
ঐচ্ছিক বস্তু
এটি কনফিগার করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-broadcast-update.BroadcastUpdatePluginইনস্ট্যান্স যোগ হবে।- চ্যানেলের নাম
স্ট্রিং ঐচ্ছিক
- বিকল্পগুলি
- ক্যাশেনাম
স্ট্রিং ঐচ্ছিক
যদি দেওয়া থাকে, তাহলে এটি
handlerএ কনফিগার করাworkbox-strategiesএরcacheNameসম্পত্তি সেট করবে। - ক্যাশেবল রেসপন্স
ক্যাশেবল রেসপন্স অপশন ঐচ্ছিক
এটি কনফিগার করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-cacheable-response.CacheableResponsePluginইনস্ট্যান্স যোগ হবে। - মেয়াদোত্তীর্ণ
মেয়াদোত্তীর্ণ প্লাগইন বিকল্প ঐচ্ছিক
এটি কনফিগার করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-expiration.ExpirationPluginইনস্ট্যান্স যোগ হবে। - fetchOptions সম্পর্কে
অনুরোধ ইনিট ঐচ্ছিক
এটি কনফিগার করলে
fetchOptionsমানটিhandlerএ কনফিগার করাworkbox-strategiesএ চলে যাবে। - ম্যাচ অপশন
CacheQueryOptions ঐচ্ছিক
এটি কনফিগার করলে
matchOptionsমানটিhandlerএ কনফিগার করাworkbox-strategiesএ চলে যাবে। - নেটওয়ার্কটাইমআউটসেকেন্ড
সংখ্যা ঐচ্ছিক
যদি দেওয়া থাকে, তাহলে এটি
handlerএ কনফিগার করাworkbox-strategiesএরnetworkTimeoutSecondsপ্রপার্টি সেট করবে। মনে রাখবেন যে শুধুমাত্র'NetworkFirst'এবং'NetworkOnly'networkTimeoutSecondsসমর্থন করে। - প্লাগইন
ওয়ার্কবক্সপ্লাগইন [] ঐচ্ছিক
এটি কনফিগার করার ফলে এক বা একাধিক ওয়ার্কবক্স প্লাগইন ব্যবহার করা সম্ভব হবে যার "শর্টকাট" বিকল্প নেই (যেমন
workbox-expiration.ExpirationPluginএর জন্যexpiration)। এখানে প্রদত্ত প্লাগইনগুলিhandlerএ কনফিগার করাworkbox-strategiesযোগ করা হবে। - প্রিক্যাশেফলব্যাক
ঐচ্ছিক বস্তু
এটি কনফিগার করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-precaching.PrecacheFallbackPluginইনস্ট্যান্স যোগ হবে।- ফলব্যাক URL
স্ট্রিং
- রেঞ্জরিকোয়েস্ট
বুলিয়ান ঐচ্ছিক
এটি সক্ষম করলে
handlerএ কনফিগার করাworkbox-strategiesএ একটিworkbox-range-requests.RangeRequestsPluginইনস্ট্যান্স যোগ হবে।
- urlPattern সম্পর্কে
স্ট্রিং | RegExp | RouteMatchCallback
এই মিলের মানদণ্ড নির্ধারণ করে যে কনফিগার করা হ্যান্ডলারটি এমন কোনও অনুরোধের জন্য প্রতিক্রিয়া তৈরি করবে কিনা যা পূর্ব-ক্যাশ করা URL গুলির একটির সাথে মেলে না। যদি একাধিক
RuntimeCachingরুট সংজ্ঞায়িত করা হয়, তাহলে যারurlPatternমিলবে সেই প্রথমটিই প্রতিক্রিয়া জানাবে।এই মানটি সরাসরি
workbox-routing.registerRouteএ পাস করা প্রথম প্যারামিটারের সাথে ম্যাপ করে। সর্বাধিক নমনীয়তার জন্যworkbox-core.RouteMatchCallbackফাংশন ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।
StrategyName
এনাম
"ক্যাশেফার্স্ট" "CacheOnly" তথ্য "নেটওয়ার্কফার্স্ট" "শুধুমাত্র নেটওয়ার্ক" "StaleWhileRevalidate" তথ্য
WebpackGenerateSWOptions
আদর্শ
বেসপার্টিয়াল এবং ওয়েবপ্যাক আংশিক এবং আংশিক এবং ওয়েবপ্যাক তৈরি করুনSWPartial
WebpackGenerateSWPartial
বৈশিষ্ট্য
- ইম্পোর্টস্ক্রিপ্টভায়াচাঙ্কস
স্ট্রিং[] ঐচ্ছিক
ওয়েবপ্যাক খণ্ডের এক বা একাধিক নাম। ঐ খণ্ডগুলির বিষয়বস্তু
importScripts()এ কলের মাধ্যমে জেনারেটেড সার্ভিস ওয়ার্কারে অন্তর্ভুক্ত করা হবে। - swDest সম্পর্কে
স্ট্রিং ঐচ্ছিক
ডিফল্ট মান হল: "service-worker.js"
এই প্লাগইন দ্বারা তৈরি পরিষেবা কর্মী ফাইলের সম্পদের নাম।
WebpackInjectManifestOptions
আদর্শ
WebpackInjectManifestPartial
বৈশিষ্ট্য
- কম্পাইলএসসিআর
বুলিয়ান ঐচ্ছিক
ডিফল্ট মান হল: সত্য
যখন
true(ডিফল্ট) থাকে, তখনswSrcফাইলটি webpack দ্বারা কম্পাইল করা হবে। যখনfalse, তখন কম্পাইলেশন ঘটবে না (এবংwebpackCompilationPluginsব্যবহার করা যাবে না।) যদি আপনি ম্যানিফেস্টটি, যেমন, একটি JSON ফাইলে ইনজেক্ট করতে চান, তাহলেfalseএ সেট করুন। - swDest সম্পর্কে
স্ট্রিং ঐচ্ছিক
এই প্লাগইন দ্বারা তৈরি করা সার্ভিস ওয়ার্কার ফাইলের সম্পদের নাম। যদি বাদ দেওয়া হয়, তাহলে নামটি
swSrcনামের উপর ভিত্তি করে তৈরি করা হবে। - ওয়েবপ্যাকসংকলনপ্লাগইন
যেকোনো[] ঐচ্ছিক
swSrcইনপুট ফাইল কম্পাইল করার সময় ব্যবহৃত ঐচ্ছিকwebpackপ্লাগইন।compileSrctrueহলেই কেবল বৈধ।
WebpackPartial
বৈশিষ্ট্য
- টুকরো টুকরো
স্ট্রিং[] ঐচ্ছিক
এক বা একাধিক খণ্ডের নাম যার সংশ্লিষ্ট আউটপুট ফাইলগুলি প্রিক্যাশ ম্যানিফেস্টে অন্তর্ভুক্ত করা উচিত।
- বাদ দিন
(স্ট্রিং | RegExp | ফাংশন)[] ঐচ্ছিক
প্রিক্যাশ ম্যানিফেস্ট থেকে সম্পদ বাদ দেওয়ার জন্য এক বা একাধিক স্পেসিফায়ার ব্যবহার করা হয়। এটি
webpackস্ট্যান্ডার্ডexcludeঅপশনের মতো একই নিয়ম অনুসরণ করে ব্যাখ্যা করা হয়। যদি প্রদান না করা হয়, তাহলে ডিফল্ট মান হল[/\.map$/, /^manifest.*\.js$]। - বাদ দিন খণ্ডগুলি
স্ট্রিং[] ঐচ্ছিক
এক বা একাধিক খণ্ডের নাম যার সংশ্লিষ্ট আউটপুট ফাইলগুলিকে প্রিক্যাশ ম্যানিফেস্ট থেকে বাদ দেওয়া উচিত।
- অন্তর্ভুক্ত করা
(স্ট্রিং | RegExp | ফাংশন)[] ঐচ্ছিক
প্রিক্যাশ ম্যানিফেস্টে সম্পদ অন্তর্ভুক্ত করার জন্য এক বা একাধিক স্পেসিফায়ার ব্যবহার করা হয়। এটি
webpackস্ট্যান্ডার্ডincludeবিকল্পের মতো একই নিয়ম অনুসরণ করে ব্যাখ্যা করা হয়। - মোড
স্ট্রিং ঐচ্ছিক
যদি 'প্রোডাকশন'-এ সেট করা থাকে, তাহলে একটি অপ্টিমাইজড সার্ভিস ওয়ার্কার বান্ডেল তৈরি করা হবে যা ডিবাগিং তথ্য বাদ দেবে। যদি এখানে স্পষ্টভাবে কনফিগার করা না থাকে, তাহলে বর্তমান
webpackসংকলনে কনফিগার করাmodeমান ব্যবহার করা হবে।
পদ্ধতি
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
এটি ওয়ার্কবক্স দ্বারা ব্যবহৃত রানটাইম লাইব্রেরির একটি সেটকে একটি স্থানীয় ডিরেক্টরিতে কপি করে, যা আপনার সার্ভিস ওয়ার্কার ফাইলের পাশাপাশি স্থাপন করা উচিত।
এই স্থানীয় কপিগুলি স্থাপনের বিকল্প হিসেবে, আপনি এর অফিসিয়াল CDN URL থেকে Workbox ব্যবহার করতে পারেন।
এই পদ্ধতিটি workbox-build.injectManifest ব্যবহারকারী ডেভেলপারদের সুবিধার জন্য উন্মুক্ত করা হয়েছে যারা Workbox-এর CDN কপি ব্যবহার করতে পছন্দ করেন না। workbox-build.generateSW ব্যবহারকারী ডেভেলপারদের এই পদ্ধতিটি স্পষ্টভাবে কল করার প্রয়োজন নেই।
পরামিতি
- destডিরেক্টরি
স্ট্রিং
প্যারেন্ট ডিরেক্টরিতে যাওয়ার পথ যার অধীনে লাইব্রেরির নতুন ডিরেক্টরি তৈরি করা হবে।
রিটার্নস
প্রতিশ্রুতি <স্ট্রিং>
নতুন তৈরি ডিরেক্টরির নাম।
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে প্রিক্যাশে URL গুলির একটি তালিকা তৈরি করে, যাকে "প্রিক্যাশে ম্যানিফেস্ট" বলা হয়।
এটি পরিষেবা কর্মীর আচরণ কনফিগার করার জন্য অতিরিক্ত বিকল্পগুলিও গ্রহণ করে, যেমন এটি ব্যবহার করা উচিত এমন যেকোনো 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>
এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে, এন্ট্রির সংখ্যা এবং তাদের আকার সম্পর্কে বিশদ সহ, precache-এ URL-এর একটি তালিকা প্রদান করে, যাকে "precache manifest" বলা হয়।
// 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: ...,
});
পরামিতি
- কনফিগারেশন
রিটার্নস
প্রতিশ্রুতি< GetManifestResult >
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
পরামিতি
- মডিউলের নাম
স্ট্রিং
- বিল্ড টাইপ
বিল্ড টাইপ
রিটার্নস
স্ট্রিং
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে প্রিক্যাশে URL গুলির একটি তালিকা তৈরি করে, যাকে "প্রিক্যাশে ম্যানিফেস্ট" বলা হয়।
ম্যানিফেস্টটি 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: '...',
});
পরামিতি
- কনফিগারেশন
রিটার্নস
প্রতিশ্রুতি< ফলাফল তৈরি করুন >