ماژول workbox-build در یک فرآیند ساخت مبتنی بر گره ادغام میشود و میتواند کل یک سرویس ورکر را تولید کند، یا فقط لیستی از داراییها را برای پیشذخیرهسازی (precache) ایجاد کند که میتوانند در یک سرویس ورکر موجود استفاده شوند.
دو حالتی که اکثر توسعهدهندگان از آنها استفاده میکنند generateSW و injectManifest هستند. پاسخ به سوالات زیر میتواند به شما در انتخاب حالت و پیکربندی مناسب برای استفاده کمک کند.
از کدام حالت استفاده کنیم
generateSW
حالت generateSW یک فایل سرویس ورکر برای شما ایجاد میکند که از طریق گزینههای پیکربندی سفارشیسازی شده و آن را روی دیسک مینویسد.
چه زمانی از generateSW استفاده کنیم
- شما میخواهید فایلها را از قبل ذخیره کنید.
- شما نیازهای سادهای در زمینه ذخیرهسازی موقت (caching) دارید.
چه زمانی از generateSW استفاده نکنیم
- شما میخواهید از سایر ویژگیهای Service Worker (مثلاً Web Push ) استفاده کنید.
- شما میخواهید اسکریپتهای اضافی را وارد کنید، یا منطق اضافی برای استراتژیهای ذخیرهسازی سفارشی اضافه کنید.
injectManifest
حالت injectManifest فهرستی از URLها را برای precache ایجاد میکند و آن precache manifest را به یک فایل service worker موجود اضافه میکند. در غیر این صورت، فایل را به همان شکل باقی میگذارد.
چه زمانی از injectManifest استفاده کنیم؟
- شما میخواهید کنترل بیشتری روی سرویس ورکر خود داشته باشید.
- شما میخواهید فایلها را از قبل ذخیره کنید.
- شما باید مسیریابی و استراتژیها را سفارشی کنید.
- شما میخواهید از سرویس ورکر خود با سایر ویژگیهای پلتفرم (مثلاً Web Push ) استفاده کنید.
چه زمانی نباید از 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.`);
});
این دستور یک مانیفست precache بر اساس فایلهایی که توسط پیکربندی شما جمعآوری شدهاند ایجاد میکند و آن را به فایل service worker موجود شما تزریق میکند.
مجموعه کاملی از گزینههای پیکربندی را میتوانید در مستندات مرجع بیابید.
حالتهای اضافی
ما انتظار داریم که generateSW یا injectManifest نیازهای اکثر توسعهدهندگان را برآورده کند. با این حال، یک حالت دیگر نیز وجود دارد که توسط workbox-build پشتیبانی میشود و ممکن است برای موارد استفاده خاص مناسب باشد.
حالت getManifest
این از نظر مفهومی شبیه به حالت injectManifest است، اما به جای اضافه کردن manifest به فایل سرویس ورکر منبع، آرایهای از ورودیهای manifest را به همراه اطلاعاتی در مورد تعداد ورودیها و اندازه کل، برمیگرداند.
شما میتوانید از حالت 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
خواص
- ورودیهای اضافی مانیفست
(رشته | ManifestEntry )[] اختیاری
فهرستی از ورودیهایی که باید از قبل ذخیره شوند، علاوه بر هر ورودی که به عنوان بخشی از پیکربندی ساخت ایجاد میشود.
- dontCacheBustURLsMatching
RegExp اختیاری
داراییهایی که با این مورد مطابقت دارند، از طریق URL خود به صورت منحصر به فرد نسخهبندی میشوند و از عملیات معمول HTTP cache-busting که هنگام پر کردن precache انجام میشود، معاف هستند. اگرچه الزامی نیست، اما توصیه میشود اگر فرآیند ساخت موجود شما از قبل یک مقدار
[hash]را در هر نام فایل وارد میکند، یک RegExp ارائه دهید که آن را تشخیص دهد، زیرا پهنای باند مصرفی هنگام precaching را کاهش میدهد. - مانیفست ترنسفورمز
تبدیل مانیفست [] اختیاری
یک یا چند تابع که به ترتیب روی مانیفست تولید شده اعمال میشوند. اگر
modifyURLPrefixیاdontCacheBustURLsMatchingنیز مشخص شده باشند، تبدیلهای مربوط به آنها ابتدا اعمال میشوند. - حداکثر اندازه فایل برای حافظه پنهان به بایت
شماره اختیاری
مقدار پیشفرض: ۲۰۹۷۱۵۲
این مقدار میتواند برای تعیین حداکثر اندازه فایلهایی که precached میشوند، استفاده شود. این کار از precached ناخواسته فایلهای بسیار بزرگی که ممکن است به طور تصادفی با یکی از الگوهای شما مطابقت داشته باشند، جلوگیری میکند.
- پیشوند modifyURL
شیء اختیاری
یک شیء، پیشوندهای رشتهای را به مقادیر رشتهای جایگزین نگاشت میکند. این میتواند برای مثال، حذف یا اضافه کردن یک پیشوند مسیر از یک ورودی مانیفست در صورتی که تنظیمات میزبانی وب شما با تنظیمات سیستم فایل محلی شما مطابقت نداشته باشد، استفاده شود. به عنوان یک جایگزین با انعطافپذیری بیشتر، میتوانید از گزینه
manifestTransformsاستفاده کنید و تابعی را ارائه دهید که ورودیهای مانیفست را با استفاده از هر منطقی که ارائه میدهید، تغییر دهد.مثال استفاده:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
نوع
حذف< GetManifestResult "manifestEntries"
> و شیء
خواص
- مسیرهای فایل
رشته[]
GeneratePartial
خواص
- babelPresetEnvTargets
رشته[] اختیاری
مقدار پیشفرض: ["chrome >= 56"]
اهدافی که هنگام transpile کردن بستهی service worker باید به
babel-preset-envارسال شوند. - شناسه حافظه پنهان
رشته اختیاری
یک شناسه اختیاری که باید به نامهای حافظه پنهان اضافه شود. این در درجه اول برای توسعه محلی مفید است که در آن چندین سایت ممکن است از همان مبدا
http://localhost:portسرویسدهی شوند. - پاکسازیحافظههای نهان قدیمی
بولی اختیاری
مقدار پیشفرض: نادرست
اینکه آیا Workbox باید تلاش کند تا هرگونه precaches ایجاد شده توسط نسخههای قدیمیتر و ناسازگار را شناسایی و حذف کند یا خیر.
- مشتریانادعا
بولی اختیاری
مقدار پیشفرض: نادرست
اینکه آیا سرویس ورکر باید به محض فعال شدن، کنترل کلاینتهای موجود را شروع کند یا خیر.
- فهرست دایرکتوری
رشته اختیاری
اگر درخواست ناوبری برای URL ای که به
/ختم میشود با یک URL از پیش ذخیره شده مطابقت نداشته باشد، این مقدار به URL اضافه میشود و برای تطابق با precache بررسی میشود. این مقدار باید با آنچه وب سرور شما برای فهرست دایرکتوری خود استفاده میکند، تنظیم شود. - غیرفعال کردن DevLogs
بولی اختیاری
مقدار پیشفرض: نادرست
- نادیده گرفتن پارامترهای URL
عبارت منظم[] اختیاری
هر نام پارامتر جستجو که با یکی از RegExp های این آرایه مطابقت داشته باشد، قبل از جستجوی تطابق precache حذف خواهد شد. این در صورتی مفید است که کاربران شما ممکن است URL هایی را درخواست کنند که حاوی، به عنوان مثال، پارامترهای URL مورد استفاده برای ردیابی منبع ترافیک باشند. در صورت عدم ارائه، مقدار پیش فرض
[/^utm_/, /^fbclid$/]است. - اسکریپتهای وارداتی
رشته[] اختیاری
فهرستی از فایلهای جاوا اسکریپت که باید به
importScripts()درون فایل تولید شدهی سرویس ورکر ارسال شوند. این مورد زمانی مفید است که میخواهید به Workbox اجازه دهید فایل سرویس ورکر سطح بالای شما را ایجاد کند، اما میخواهید کد اضافی مانند یک شنوندهی رویداد push را نیز در آن بگنجانید. - inlineWorkboxRuntime
بولی اختیاری
مقدار پیشفرض: نادرست
اینکه آیا کد زمان اجرا برای کتابخانه Workbox باید در سرویس ورکر سطح بالا گنجانده شود یا به یک فایل جداگانه تقسیم شود که باید در کنار سرویس ورکر مستقر شود. جدا نگه داشتن زمان اجرا به این معنی است که کاربران مجبور نیستند هر بار که سرویس ورکر سطح بالای شما تغییر میکند، کد Workbox را دوباره دانلود کنند.
- حالت
رشته اختیاری
مقدار پیشفرض: "تولید"
اگر روی «production» تنظیم شود، یک بستهی بهینهشدهی سرویس ورکر که اطلاعات اشکالزدایی را شامل نمیشود، تولید خواهد شد. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار
process.env.NODE_ENVاستفاده میشود و در غیر این صورت، به'production'برمیگردد. رشته اختیاری
مقدار پیشفرض: تهی
در صورت مشخص شدن، تمام درخواستهای ناوبری برای URLهایی که از قبل ذخیره نشدهاند، با HTML موجود در URL ارائه شده انجام میشوند. شما باید URL یک سند HTML را که در مانیفست precache شما فهرست شده است، ارسال کنید. این برای استفاده در سناریوی برنامه تک صفحهای در نظر گرفته شده است، که در آن میخواهید همه ناوبریها از HTML پوسته برنامه مشترک استفاده کنند.
عبارت منظم[] اختیاری
یک آرایه اختیاری از عبارات منظم که مشخص میکند رفتار پیکربندیشدهی
navigateFallbackروی کدام URLها اعمال شود. این مورد زمانی مفید است که فقط زیرمجموعهای از URLهای سایت شما باید به عنوان بخشی از یک برنامهی تکصفحهای در نظر گرفته شوند. اگر هر دوnavigateFallbackDenylistوnavigateFallbackAllowlistپیکربندی شده باشند، لیست denylist اولویت دارد.نکته : این RegExpها ممکن است در طول پیمایش، در برابر هر URL مقصد ارزیابی شوند. از استفاده از RegExpهای پیچیده خودداری کنید، در غیر این صورت ممکن است کاربران شما هنگام پیمایش سایت شما با تأخیر مواجه شوند.
عبارت منظم[] اختیاری
یک آرایه اختیاری از عبارات منظم که مشخص میکند رفتار پیکربندیشدهی
navigateFallbackروی کدام URLها اعمال شود. این مورد زمانی مفید است که فقط زیرمجموعهای از URLهای سایت شما باید به عنوان بخشی از یک برنامهی تکصفحهای در نظر گرفته شوند. اگر هر دوnavigateFallbackDenylistوnavigateFallbackAllowlistپیکربندی شده باشند، لیست لغو اولویت دارد.نکته : این RegExpها ممکن است در طول پیمایش، در برابر هر URL مقصد ارزیابی شوند. از استفاده از RegExpهای پیچیده خودداری کنید، در غیر این صورت ممکن است کاربران شما هنگام پیمایش سایت شما با تأخیر مواجه شوند.
بولی اختیاری
مقدار پیشفرض: نادرست
فعال کردن یا نکردن پیشبارگذاری ناوبری در سرویس ورکر تولید شده. وقتی روی true تنظیم شود، باید از
runtimeCachingنیز برای تنظیم یک استراتژی پاسخ مناسب که با درخواستهای ناوبری مطابقت دارد و از پاسخ از پیش بارگذاری شده استفاده میکند، استفاده کنید.- آفلاینگوگل آنالیتیکس
بولی | GoogleAnalyticsInitializeOptions اختیاری
مقدار پیشفرض: نادرست
کنترل میکند که آیا پشتیبانی از گوگل آنالیتیکس آفلاین را شامل شود یا خیر. وقتی
true، فراخوانی تابعinitialize()درworkbox-google-analyticsبه سرویس ورکر تولید شده شما اضافه میشود. وقتی روی یکObjectتنظیم شود، آن شیء به فراخوانیinitialize()ارسال میشود و به شما امکان میدهد رفتار را سفارشی کنید. - ذخیره سازی در زمان اجرا
ذخیره سازی در زمان اجرا [] اختیاری
هنگام استفاده از ابزارهای ساخت Workbox برای تولید سرویس ورکر خود، میتوانید یک یا چند پیکربندی ذخیرهسازی زمان اجرا را مشخص کنید. سپس این پیکربندیها با استفاده از پیکربندی match و handler که تعریف میکنید، به فراخوانیهای
workbox-routing.registerRouteترجمه میشوند.برای مشاهدهی تمام گزینهها، به مستندات
workbox-build.RuntimeCachingمراجعه کنید. مثال زیر یک پیکربندی معمول را نشان میدهد که در آن دو مسیر زمان اجرا تعریف شده است: - انتظار کشیدن
بولی اختیاری
مقدار پیشفرض: نادرست
آیا یک فراخوانی بیقید و شرط برای
skipWaiting()به سرویس ورکر تولید شده اضافه شود یا خیر. اگرfalse، یک شنوندهmessageبه جای آن اضافه میشود و به صفحات کلاینت اجازه میدهد تا با فراخوانیpostMessage({type: 'SKIP_WAITING'})روی یک سرویس ورکر در حال انتظار،skipWaiting()فعال کنند. - منبع مپ
بولی اختیاری
مقدار پیشفرض: درست
آیا برای فایلهای تولید شدهی سرویس ورکر، یک نقشه منبع (sourcemap) ایجاد شود یا خیر.
GenerateSWOptions
نوع
GetManifestOptions
GetManifestResult
خواص
- بشمار
شماره
- مانیفست ورودیها
- اندازه
شماره
- هشدارها
رشته[]
GlobPartial
خواص
- دنبال کردن
بولی اختیاری
مقدار پیشفرض: درست
تعیین میکند که آیا هنگام تولید مانیفست precache، پیوندهای نمادین دنبال شوند یا خیر. برای اطلاعات بیشتر، به تعریف
followدر مستنداتglobمراجعه کنید. - نادیده گرفتنهای جهانی
رشته[] اختیاری
مقدار پیشفرض: ["**\/node_modules\/**\/*"]
مجموعهای از الگوها که با فایلهایی که همیشه هنگام تولید مانیفست precache حذف میشوند، مطابقت دارند. برای اطلاعات بیشتر، به تعریف
ignoreدر مستنداتglobمراجعه کنید. - الگوهای جهانی
رشته[] اختیاری
مقدار پیشفرض: ["**\/*.{js,wasm,css,html}"]
فایلهایی که با هر یک از این الگوها مطابقت داشته باشند، در مانیفست precache گنجانده خواهند شد. برای اطلاعات بیشتر، به پرایمر
globمراجعه کنید. - قالبهای URL
شیء اختیاری
اگر یک URL بر اساس منطق سمت سرور رندر شود، محتوای آن ممکن است به چندین فایل یا به مقدار رشتهای منحصر به فرد دیگری وابسته باشد. کلیدهای موجود در این شیء، URLهای رندر شده توسط سرور هستند. اگر مقادیر آرایهای از رشتهها باشند، به عنوان الگوهای
globتفسیر میشوند و محتوای هر فایلی که با این الگوها مطابقت داشته باشد، برای نسخهبندی منحصر به فرد URL استفاده میشود. اگر با یک رشته واحد استفاده شود، به عنوان اطلاعات نسخهبندی منحصر به فردی که برای یک URL مشخص ایجاد کردهاید، تفسیر میشود.
InjectManifestOptions
نوع
InjectPartial
خواص
- نقطه تزریق
رشته اختیاری
مقدار پیشفرض: "self.__WB_MANIFEST"
رشتهای که باید درون فایل
swSrcپیدا شود. پس از پیدا شدن، با precache manifest تولید شده جایگزین خواهد شد. - 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با منطق پاسخ سفارشی باشد. - روش
HTTPMethod اختیاری است
مقدار پیشفرض: "GET"
متد HTTP که باید با آن مطابقت داده شود. مقدار پیشفرض
'GET'معمولاً کافی است، مگر اینکه صریحاً نیاز به مطابقت با'POST'،'PUT'یا نوع دیگری از درخواست داشته باشید. - گزینهها
شیء اختیاری
- همگامسازی پسزمینه
شیء اختیاری
پیکربندی این، یک نمونه از
workbox-background-sync.BackgroundSyncPluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند.- نام
رشته
- گزینهها
گزینههای صف اختیاری است
- پخشبهروزرسانی
شیء اختیاری
پیکربندی این، یک نمونه از
workbox-broadcast-update.BroadcastUpdatePluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند.- نام کانال
رشته اختیاری
- گزینهها
- نام حافظه پنهان
رشته اختیاری
در صورت ارائه، این مقدار، ویژگی
cacheNameمربوط بهworkbox-strategiesپیکربندی شده درhandlerرا تنظیم میکند. - پاسخ قابل ذخیره سازی
گزینههای پاسخ Cacheable اختیاری است
پیکربندی این، یک نمونه از
workbox-cacheable-response.CacheableResponsePluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند. - انقضا
گزینههای افزونه انقضا اختیاری است
پیکربندی این مورد، یک نمونه از
workbox-expiration.ExpirationPluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند. - گزینههای واکشی
درخواست شروع (اختیاری)
پیکربندی این مورد، مقدار
fetchOptionsرا بهworkbox-strategiesپیکربندی شده درhandlerارسال میکند. - گزینههای تطبیق
گزینههای CacheQuery اختیاری
پیکربندی این مورد، مقدار
matchOptionsرا بهworkbox-strategiesپیکربندی شده درhandlerارسال میکند. - networkTimeoutSeconds
شماره اختیاری
در صورت ارائه، این مقدار، ویژگی
networkTimeoutSecondsمربوط بهworkbox-strategiesپیکربندی شده درhandlerرا تنظیم میکند. توجه داشته باشید که فقط'NetworkFirst'و'NetworkOnly'ازnetworkTimeoutSecondsپشتیبانی میکنند. - افزونهها
افزونهی WorkboxPlugin [] اختیاری
پیکربندی این امکان استفاده از یک یا چند افزونه Workbox را که گزینههای «میانبر» ندارند (مانند
expirationبرایworkbox-expiration.ExpirationPlugin) فراهم میکند. افزونههای ارائه شده در اینجا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میشوند. - precacheبازگشت
شیء اختیاری
پیکربندی این مورد، یک نمونه از
workbox-precaching.PrecacheFallbackPluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند.- آدرس اینترنتی جایگزین
رشته
- درخواستهای بازهای
بولی اختیاری
فعال کردن این، یک نمونه از
workbox-range-requests.RangeRequestsPluginبهworkbox-strategiesپیکربندی شده درhandlerاضافه میکند.
- الگوی آدرس اینترنتی
رشته | عبارت منظم | RouteMatchCallback
این معیار تطابق تعیین میکند که آیا هندلر پیکربندیشده برای هر درخواستی که با یکی از URLهای از پیش ذخیرهشده مطابقت ندارد، پاسخی تولید کند یا خیر. اگر چندین مسیر
RuntimeCachingتعریف شده باشد، اولین مسیری کهurlPatternآن مطابقت داشته باشد، پاسخ خواهد داد.این مقدار مستقیماً به اولین پارامتر ارسالی به
workbox-routing.registerRouteنگاشت میشود. برای انعطافپذیری بیشتر، توصیه میشود از تابعworkbox-core.RouteMatchCallbackاستفاده شود.
StrategyName
شمارشی
«اولین حافظه پنهان» «فقط حافظه پنهان» «نتورک فرست» «فقط شبکه» "در حالی که اعتبارسنجی مجدد انجام میشود، بیاعتبار"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
خواص
- importScriptsViaChunks
رشته[] اختیاری
یک یا چند نام از تکههای webpack. محتوای این تکهها از طریق فراخوانی تابع
importScripts()در service worker تولید شده قرار میگیرد. - swDest
رشته اختیاری
مقدار پیشفرض: "service-worker.js" است.
نام دارایی فایل سرویس ورکر ایجاد شده توسط این افزونه.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
خواص
- کامپایلSrc
بولی اختیاری
مقدار پیشفرض: درست
وقتی
true(پیشفرض)، فایلswSrcتوسط webpack کامپایل میشود. وقتیfalse، کامپایل انجام نمیشود (و نمیتوان ازwebpackCompilationPluginsاستفاده کرد.) اگر میخواهید manifest را مثلاً در یک فایل JSON تزریق کنید، رویfalseتنظیم کنید. - swDest
رشته اختیاری
نام دارایی فایل سرویس ورکر که توسط این افزونه ایجاد خواهد شد. در صورت حذف، نام بر اساس نام
swSrcخواهد بود. - افزونههای کامپایل وبپک
هر [] اختیاری
افزونههای اختیاری
webpackکه هنگام کامپایل فایل ورودیswSrcاستفاده میشوند. فقط در صورتی معتبر هستند کهcompileSrctrueداشته باشد.
WebpackPartial
خواص
- تکهها
رشته[] اختیاری
یک یا چند نام تکه که فایلهای خروجی متناظر آنها باید در مانیفست precache گنجانده شوند.
- مستثنی کردن
(رشته | عبارت منظم | تابع)[] اختیاری
یک یا چند مشخصکننده که برای حذف داراییها از مانیفست precache استفاده میشود. این مورد طبق همان قوانین گزینه استاندارد
excludewebpackتفسیر میشود. در صورت عدم ارائه، مقدار پیشفرض[/\.map$/, /^manifest.*\.js$]است. - حذف تکهها
رشته[] اختیاری
یک یا چند نام تکه که فایلهای خروجی مربوطه باید از مانیفست precache حذف شوند.
- شامل شدن
(رشته | عبارت منظم | تابع)[] اختیاری
یک یا چند مشخصکننده برای گنجاندن داراییها در مانیفست precache استفاده میشود. این مورد طبق همان قوانین گزینه استاندارد
includeدرwebpackتفسیر میشود. - حالت
رشته اختیاری
اگر روی «تولید» تنظیم شود، یک بستهی بهینهشدهی سرویس ورکر که اطلاعات اشکالزدایی را شامل نمیشود، تولید خواهد شد. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار
modeپیکربندیشده در کامپایل فعلیwebpackاستفاده خواهد شد.
روشها
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
این دستور مجموعهای از کتابخانههای زمان اجرا که توسط Workbox استفاده میشوند را در یک دایرکتوری محلی کپی میکند که باید در کنار فایل service worker شما مستقر شود.
به عنوان جایگزینی برای استقرار این کپیهای محلی، میتوانید از Workbox از طریق URL رسمی CDN آن استفاده کنید.
این متد برای توسعهدهندگانی که از workbox-build.injectManifest استفاده میکنند و ترجیح میدهند از کپیهای CDN Workbox استفاده نکنند، در دسترس قرار گرفته است. توسعهدهندگانی که از workbox-build.generateSW استفاده میکنند، نیازی به فراخوانی صریح این متد ندارند.
پارامترها
- دایرکتوری حذف
رشته
مسیر دایرکتوری والد که دایرکتوری جدید کتابخانهها تحت آن ایجاد خواهد شد.
بازگشتها
قول<string>
نام دایرکتوری تازه ایجاد شده.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
این روش بر اساس گزینههایی که شما ارائه میدهید، فهرستی از URLها را برای precache ایجاد میکند که به آن "precache manifest" گفته میشود.
همچنین گزینههای اضافی را که رفتار سرویس ورکر را پیکربندی میکند، مانند هر قانون runtimeCaching که باید استفاده کند، در نظر میگیرد.
بر اساس مانیفست precache و پیکربندی اضافی، یک فایل service worker آماده برای استفاده را روی دیسک در 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: '...',
});
پارامترها
- پیکربندی
بازگشتها
قول < BuildResult >
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
این متد فهرستی از URLها را برای precache برمیگرداند که به آن "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ها را برای precache ایجاد میکند که به آن "precache manifest" گفته میشود.
مانیفست به فایل 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: '...',
});
پارامترها
- پیکربندی
بازگشتها
قول < BuildResult >