ماژول workbox-build
در یک فرآیند ساخت مبتنی بر گره ادغام میشود و میتواند یک سرویسکار کامل ایجاد کند، یا فقط فهرستی از داراییها را برای پیش کش ایجاد کند که میتواند در یک سرویسکار موجود استفاده شود.
دو حالتی که اکثر توسعه دهندگان از آن استفاده می کنند عبارتند از generateSW
و injectManifest
. پاسخ به سوالات زیر می تواند به شما در انتخاب حالت و پیکربندی مناسب برای استفاده کمک کند.
از کدام حالت استفاده شود
generateSW
حالت generateSW
یک فایل Service Worker برای شما ایجاد می کند که از طریق گزینه های پیکربندی سفارشی شده است و آن را روی دیسک می نویسد.
زمان استفاده از generateSW
- می خواهید فایل ها را پیش کش کنید.
- شما نیازهای ذخیره سازی در زمان اجرا ساده دارید.
زمانی که از generateSW
استفاده نکنید
- میخواهید از سایر ویژگیهای Service Worker (به عنوان مثال Web Push ) استفاده کنید.
- میخواهید اسکریپتهای اضافی را وارد کنید، یا منطق اضافی برای استراتژیهای کش سفارشی اضافه کنید.
injectManifest
حالت injectManifest
لیستی از URL ها را برای پیش کش ایجاد می کند و آن مانیفست پیش کش را به فایل سرویس کارگر موجود اضافه می کند. در غیر این صورت فایل را همانطور که هست باقی می گذارد.
زمان استفاده از injectManifest
- شما می خواهید کنترل بیشتری بر کارمند خدمات خود داشته باشید.
- می خواهید فایل ها را پیش کش کنید.
- شما باید مسیریابی و استراتژی ها را سفارشی کنید.
- میخواهید از سرویسکار خود با سایر ویژگیهای پلتفرم (مانند Web Push ) استفاده کنید.
زمانی که از injectManifest
استفاده نکنید
- شما می خواهید ساده ترین راه را برای افزودن یک سرویس دهنده به سایت خود داشته باشید.
generateSW
حالت SW
میتوانید از حالت 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.`);
});
این یک مانیفست پیش کش بر اساس فایل هایی که توسط پیکربندی شما انتخاب شده است ایجاد می کند و آن را به فایل Service Worker موجود شما تزریق می کند.
مجموعه کاملی از گزینه های پیکربندی را می توان در مستندات مرجع یافت.
حالت های اضافی
ما انتظار داریم که 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
خواص
- اضافی ManifestEntries
(رشته | ManifestEntry )[] اختیاری است
فهرستی از ورودیهایی که باید از پیش ذخیره شوند، علاوه بر هر ورودی که به عنوان بخشی از پیکربندی ساخت ایجاد میشود.
- dontCacheBustURLsMatching
RegExp اختیاری است
داراییهایی که با این مطابقت دارند فرض میشوند که بهطور منحصربهفرد از طریق URL خود نسخهبندی شدهاند، و از تخریب حافظه پنهان HTTP که هنگام پر کردن پیش کش انجام میشود مستثنی هستند. اگرچه لازم نیست، توصیه میشود که اگر فرآیند ساخت موجود شما قبلاً یک مقدار
[hash]
را در هر نام فایل وارد میکند، یک RegExp ارائه دهید که آن را تشخیص میدهد، زیرا پهنای باند مصرفی هنگام پیشکش کردن را کاهش میدهد. - manifest Transforms می کند
ManifestTransform [] اختیاری است
یک یا چند تابع که به صورت متوالی در برابر مانیفست تولید شده اعمال می شوند. اگر
modifyURLPrefix
یاdontCacheBustURLsMatching
نیز مشخص شده باشد، ابتدا تبدیلهای مربوط به آنها اعمال میشود. - MaximumFileSizeToCacheInBytes
شماره اختیاری
مقدار پیش فرض: 2097152 است
از این مقدار می توان برای تعیین حداکثر اندازه فایل هایی که از قبل ذخیره می شوند استفاده کرد. این از شما جلوگیری می کند که به طور ناخواسته فایل های بسیار بزرگی را که ممکن است به طور تصادفی با یکی از الگوهای شما مطابقت داشته باشند، پیش کش کنید.
- modifyURLPrefix
شی اختیاری
پیشوندهای رشته نگاشت شیء به مقادیر رشته جایگزین می شود. اگر تنظیمات میزبانی وب شما با تنظیمات سیستم فایل محلی شما مطابقت نداشته باشد، میتوان از آن برای حذف یا افزودن پیشوند مسیر از ورودی مانیفست استفاده کرد. به عنوان یک جایگزین با انعطافپذیری بیشتر، میتوانید از گزینه
manifestTransforms
استفاده کنید و تابعی را ارائه دهید که ورودیهای مانیفست را با استفاده از هر منطقی که ارائه میکنید، تغییر میدهد.مثال استفاده:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
تایپ کنید
حذف< GetManifestResult "manifestEntries"
> & شی
خواص
- مسیرهای فایل
رشته[]
GeneratePartial
خواص
- babelPresetEnvTargets
رشته[] اختیاری است
مقدار پیشفرض این است: ["chrome >= 56"]
اهداف برای انتقال به
babel-preset-env
هنگام انتقال بسته سرویس کارگر. - cacheId
رشته اختیاری
یک شناسه اختیاری که باید به نامهای حافظه پنهان اضافه شود. این در درجه اول برای توسعه محلی مفید است که در آن چندین سایت ممکن است از یک منبع
http://localhost:port
ارائه شوند. - cleanupOutdatedCaches
بولی اختیاری
مقدار پیش فرض این است: false
اینکه آیا Workbox باید تلاش کند تا هر پیش کش ایجاد شده توسط نسخه های قدیمی تر و ناسازگار را شناسایی و حذف کند.
- ادعای مشتریان
بولی اختیاری
مقدار پیش فرض این است: false
اینکه آیا کارمند سرویس باید به محض فعال شدن ، کنترل هر یک از مشتریان موجود را شروع کند یا خیر.
- فهرست فهرست
رشته اختیاری
اگر یک درخواست پیمایش برای یک URL که به
/
ختم می شود با URL از پیش ذخیره شده مطابقت نداشته باشد، این مقدار به URL اضافه می شود و برای مطابقت پیش کش بررسی می شود. این باید به چیزی تنظیم شود که سرور وب شما برای فهرست فهرست خود از آن استفاده می کند. - غیرفعال کردن DevLogs
بولی اختیاری
مقدار پیش فرض این است: false
- ignoreURLParametersMatching
RegExp[] اختیاری است
هر نام پارامتر جستجو که با یکی از RegExp در این آرایه مطابقت داشته باشد، قبل از جستجو برای تطبیق پیش کش حذف خواهد شد. اگر کاربران شما ممکن است URL هایی را درخواست کنند که شامل پارامترهای URL هستند که برای ردیابی منبع ترافیک استفاده می شوند. اگر ارائه نشده باشد، مقدار پیشفرض
[/^utm_/, /^fbclid$/]
است. - importScripts
رشته[] اختیاری است
فهرستی از فایلهای جاوا اسکریپت که باید به
importScripts()
در داخل فایل service worker تولید شده ارسال شوند. این زمانی مفید است که میخواهید به Workbox اجازه دهید فایل سرویسدهنده سطح بالای شما را ایجاد کند، اما میخواهید کدهای اضافی مانند شنونده رویدادهای فشاری را نیز اضافه کنید. - inlineWorkboxRuntime
بولی اختیاری
مقدار پیش فرض این است: false
آیا کد زمان اجرا برای کتابخانه Workbox باید در سرویسکار سطح بالا گنجانده شود یا به یک فایل جداگانه تقسیم شود که باید در کنار سرویسکار مستقر شود. جدا نگه داشتن زمان اجرا به این معنی است که کاربران مجبور نیستند هر بار که سرویس دهنده سطح بالای شما تغییر می کند، کد Workbox را دوباره دانلود کنند.
- حالت
رشته اختیاری
مقدار پیش فرض این است: "production"
اگر روی "تولید" تنظیم شود، یک بسته سرویس بهینه سازی شده که اطلاعات اشکال زدایی را حذف نمی کند، تولید می شود. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار
process.env.NODE_ENV
استفاده خواهد شد و در صورت عدم موفقیت، به'production'
برمی گردد. رشته اختیاری
مقدار پیش فرض این است: null
اگر مشخص شده باشد، تمام درخواستهای پیمایش برای URLهایی که از پیش ذخیره نشدهاند، با HTML موجود در URL ارائهشده انجام میشوند. شما باید URL یک سند HTML را که در مانیفست پیش کش شما فهرست شده است، ارسال کنید. این به معنای استفاده در سناریوی برنامه تک صفحه است، که در آن شما میخواهید همه پیمایشها از HTML رایج App Shell استفاده کنند.
RegExp[] اختیاری است
آرایهای اختیاری از عبارات منظم که رفتار پیکربندیشده
navigateFallback
را محدود میکند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دوnavigateFallbackDenylist
وnavigateFallbackAllowlist
پیکربندی شده باشند، فهرست انکار مقدم است.توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.
RegExp[] اختیاری است
آرایهای اختیاری از عبارات منظم که رفتار پیکربندیشده
navigateFallback
را محدود میکند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دوnavigateFallbackDenylist
وnavigateFallbackAllowlist
پیکربندی شده باشند، فهرست انکار اولویت دارد.توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.
بولی اختیاری
مقدار پیش فرض این است: false
فعال کردن پیشبارگذاری ناوبری در سرویسکار تولید شده یا خیر. هنگامی که روی true تنظیم می شود، باید از
runtimeCaching
نیز برای تنظیم یک استراتژی پاسخ مناسب استفاده کنید که با درخواست های ناوبری مطابقت داشته باشد و از پاسخ از پیش بارگذاری شده استفاده کنید.- آفلاین GoogleAnalytics
بولی | GoogleAnalyticsInitializeOptions اختیاری است
مقدار پیش فرض این است: false
کنترل می کند که آیا پشتیبانی از Google Analytics آفلاین را شامل شود یا خیر. هنگامی که
true
، فراخوانیinitialize()
'sworkbox-google-analytics
به سرویس کار تولید شده شما اضافه می شود. وقتی روی یکObject
تنظیم شود، آن شی به فراخوانیinitialize()
ارسال می شود و به شما امکان می دهد رفتار را سفارشی کنید. - runtimeCaching
RuntimeCaching [] اختیاری است
وقتی از ابزارهای ساخت Workbox برای تولید سرویسکار خود استفاده میکنید، میتوانید یک یا چند پیکربندی کش زمان اجرا را مشخص کنید. سپس با استفاده از پیکربندی تطبیق و کنترلر که شما تعریف کردهاید، اینها به تماسهای
workbox-routing.registerRoute
ترجمه میشوند.برای همه گزینهها، به مستندات
workbox-build.RuntimeCaching
مراجعه کنید. مثال زیر یک پیکربندی معمولی را نشان می دهد که دو مسیر زمان اجرا تعریف شده است: - skipWaiting
بولی اختیاری
مقدار پیش فرض این است: false
آیا برای افزودن یک تماس بدون قید و شرط به
skipWaiting()
به سرویس کارگر تولید شده. اگرfalse
باشد، به جای آن یک شنوندهmessage
اضافه میشود که به صفحات سرویس گیرنده اجازه میدهدskipWaiting()
با فراخوانیpostMessage({type: 'SKIP_WAITING'})
در یک سرویسدهنده منتظر راهاندازی کنند. - نقشه منبع
بولی اختیاری
مقدار پیش فرض: true است
آیا برای ایجاد یک نقشه منبع برای فایل های سرویس کارگر تولید شده.
GenerateSWOptions
تایپ کنید
GetManifestOptions
تایپ کنید
GetManifestResult
خواص
- شمردن
عدد
- نوشته های مانیفست
- اندازه
عدد
- هشدارها
رشته[]
GlobPartial
خواص
- globFollow
بولی اختیاری
مقدار پیش فرض: true است
تعیین می کند که آیا در هنگام تولید مانیفست پیش کش دنبال می شود یا خیر. برای اطلاعات بیشتر، به تعریف
follow
در مستنداتglob
مراجعه کنید. - glob نادیده می گیرد
رشته[] اختیاری است
مقدار پیشفرض این است: ["**\/node_modules\/**\/*"]
مجموعهای از الگوهای منطبق با فایلها که همیشه هنگام تولید مانیفست پیش کش حذف میشوند. برای اطلاعات بیشتر، به تعریف
ignore
در مستنداتglob
مراجعه کنید. - الگوهای جهانی
رشته[] اختیاری است
مقدار پیش فرض این است: ["**\/*.{js,wasm,css,html}"]
فایل های مطابق با هر یک از این الگوها در مانیفست پیش کش گنجانده می شوند. برای اطلاعات بیشتر، پرایمر
glob
را ببینید. - globStrict
بولی اختیاری
مقدار پیش فرض: true است
اگر درست باشد، خطا در خواندن دایرکتوری هنگام ایجاد مانیفست پیش کش، باعث از کار افتادن ساخت می شود. اگر نادرست باشد، دایرکتوری مشکل دار حذف می شود. برای اطلاعات بیشتر، به تعریف
strict
در مستنداتglob
مراجعه کنید. - URL های قالب
شی اختیاری
اگر URL بر اساس منطق سمت سرور ارائه شود، محتویات آن ممکن است به چندین فایل یا مقدار رشته منحصر به فرد دیگری بستگی داشته باشد. کلیدهای موجود در این شی، URL های ارائه شده توسط سرور هستند. اگر مقادیر آرایهای از رشتهها باشند، بهعنوان الگوهای
glob
تفسیر میشوند و محتوای هر فایلی که با الگوها مطابقت دارد برای نسخه منحصربهفرد URL استفاده میشود. اگر با یک رشته استفاده شود، به عنوان اطلاعات نسخهسازی منحصربهفردی که برای یک URL معین ایجاد کردهاید، تفسیر میشود.
InjectManifestOptions
تایپ کنید
InjectPartial
خواص
- نقطه تزریق
رشته اختیاری
مقدار پیشفرض این است: "self.__WB_MANIFEST"
رشته ای که باید در داخل فایل
swSrc
پیدا شود. پس از یافتن، مانیفست پیش کش تولید شده جایگزین آن می شود. - swSrc
رشته
مسیر و نام فایل فایل Service Worker که در طول فرآیند ساخت، نسبت به دایرکتوری کاری فعلی خوانده می شود.
ManifestEntry
خواص
- تمامیت
رشته اختیاری
- تجدید نظر
رشته
- آدرس اینترنتی
رشته
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
تایپ کنید
تابع
مولفه های
- نوشته های مانیفست
( ManifestEntry & object)[]
- اندازه
عدد
- تلفیقی
ناشناخته اختیاری
برمی گرداند
Promise< ManifestTransformResult > | ManifestTransform Result
ManifestTransformResult
خواص
- آشکار
( ManifestEntry & object)[]
- اندازه
عدد
- هشدارها
رشته[] اختیاری است
OptionalGlobDirectoryPartial
خواص
- globDirectory
رشته اختیاری
دایرکتوری محلی که می خواهید
globPatterns
را با آن مطابقت دهید. مسیر نسبت به دایرکتوری فعلی است.
RequiredGlobDirectoryPartial
خواص
- globDirectory
رشته
دایرکتوری محلی که می خواهید
globPatterns
را با آن مطابقت دهید. مسیر نسبت به دایرکتوری فعلی است.
RequiredSWDestPartial
خواص
- swDest
رشته
مسیر و نام فایل فایل Service Worker که در فرآیند ساخت، نسبت به دایرکتوری کاری فعلی ایجاد می شود. باید به «.js» ختم شود.
RuntimeCaching
خواص
- کنترل کننده
این تعیین می کند که مسیر زمان اجرا چگونه پاسخی را ایجاد می کند. برای استفاده از یکی از
workbox-strategies
داخلی، نام آن را مانند'NetworkFirst'
ارائه کنید. از طرف دیگر، این میتواند یک تابع بازخوانیworkbox-core.RouteHandler
با منطق پاسخ سفارشی. - روش
روش HTTPM اختیاری است
مقدار پیش فرض این است: "GET"
روش HTTP برای مطابقت با. مقدار پیشفرض
'GET'
معمولاً کافی است، مگر اینکه صریحاً نیاز به مطابقت با'POST'
،'PUT'
یا نوع دیگری از درخواست داشته باشید. - گزینه ها
شی اختیاری
- پس زمینه همگام سازی
شی اختیاری
پیکربندی این یک نمونه
workbox-background-sync.BackgroundSyncPlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند.- نام
رشته
- گزینه ها
QueueOptions اختیاری است
- پخش به روز رسانی
شی اختیاری
پیکربندی این یک نمونه
workbox-broadcast-update.BroadcastUpdatePlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند.- نام کانال
رشته اختیاری
- گزینه ها
- cacheName
رشته اختیاری
در صورت ارائه، این ویژگی
cacheName
درworkbox-strategies
پیکربندی شده درhandler
تنظیم میکند. - cacheableResponse
CacheableResponseOptions اختیاری است
پیکربندی این یک نمونه
workbox-cacheable-response.CacheableResponsePlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند. - انقضاء
ExpirationPluginOptions اختیاری است
پیکربندی این یک نمونه
workbox-expiration.ExpirationPlugin
را بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند. - fetchOptions
RequestInit اختیاری است
با پیکربندی این مقدار
fetchOptions
بهworkbox-strategies
پیکربندی شده درhandler
منتقل میشود. - matchOptions
CacheQueryOptions اختیاری است
با پیکربندی این مقدار
matchOptions
بهworkbox-strategies
پیکربندی شده درhandler
منتقل میشود. - networkTimeoutSeconds
شماره اختیاری
در صورت ارائه، این ویژگی
networkTimeoutSeconds
ازworkbox-strategies
پیکربندی شده درhandler
را تنظیم می کند. توجه داشته باشید که فقط'NetworkFirst'
و'NetworkOnly'
networkTimeoutSeconds
پشتیبانی میکنند. - پلاگین ها
WorkboxPlugin [] اختیاری است
پیکربندی این امکان استفاده از یک یا چند افزونه Workbox را میدهد که گزینههای «میانبر» ندارند (مانند
expiration
برایworkbox-expiration.ExpirationPlugin
). افزونههای ارائهشده در اینجا بهworkbox-strategies
پیکربندیشده درhandler
اضافه میشوند. - precacheFallback
شی اختیاری
پیکربندی این یک نمونه
workbox-precaching.PrecacheFallbackPlugin
را بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند.- fallbackURL
رشته
- rangeRequests
بولی اختیاری
با فعال کردن این، یک نمونه
workbox-range-requests.RangeRequestsPlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می شود.
- urlPattern
رشته | RegExp | RouteMatchCallback
این معیار تطبیق تعیین میکند که آیا کنترلکننده پیکربندیشده برای هر درخواستی که با یکی از URLهای از پیش ذخیرهشده مطابقت ندارد، پاسخی ایجاد کند یا خیر. اگر چندین مسیر
RuntimeCaching
تعریف شده باشد، اولین مسیری کهurlPattern
با آن مطابقت دارد، همانی است که پاسخ می دهد.این مقدار مستقیماً به اولین پارامتر ارسال شده به
workbox-routing.registerRoute
نگاشت می شود. توصیه میشود برای انعطافپذیری، از یک تابعworkbox-core.RouteMatchCallback
استفاده کنید.
StrategyName
Enum
"CacheFirst" "فقط حافظه پنهان" "شبکه اول" "فقط شبکه" "StaleWhileRevalidate"
WebpackGenerateSWOptions
تایپ کنید
WebpackGenerateSWPartial
خواص
- importScriptsViaChunks
رشته[] اختیاری است
یک یا چند نام از تکه های بسته وب. محتوای آن تکه ها از طریق فراخوانی به
importScripts()
در سرویس کارگر تولید شده گنجانده می شود. - swDest
رشته اختیاری
مقدار پیش فرض این است: "service-worker.js"
نام دارایی فایل Service Worker ایجاد شده توسط این افزونه.
WebpackInjectManifestOptions
تایپ کنید
WebpackInjectManifestPartial
خواص
- compileSrc
بولی اختیاری
مقدار پیش فرض: true است
هنگامی که
true
(پیشفرض)، فایلswSrc
توسط webpack کامپایل میشود. وقتیfalse
، کامپایل انجام نمیشود (و نمیتوان ازwebpackCompilationPlugins
استفاده کرد.) اگر میخواهید مانیفست را به عنوان مثال، در یک فایل JSON تزریق کنید، رویfalse
تنظیم کنید. - swDest
رشته اختیاری
نام دارایی فایل Service Worker که توسط این افزونه ایجاد خواهد شد. در صورت حذف، نام بر اساس نام
swSrc
خواهد بود. - webpackCompilationPlugins
هر[] اختیاری
افزونه های
webpack
اختیاری که هنگام کامپایل فایل ورودیswSrc
استفاده می شود. فقط در صورتی معتبر است کهcompileSrc
true
باشد.
WebpackPartial
خواص
- تکه ها
رشته[] اختیاری است
یک یا چند نام تکهای که فایلهای خروجی مربوطه باید در مانیفست پیش کش گنجانده شوند.
- حذف کردن
(رشته | RegExp | تابع)[] اختیاری است
یک یا چند مشخص کننده برای حذف دارایی ها از مانیفست پیش کش استفاده می شود. این با پیروی از قوانین مشابه با گزینه استاندارد
exclude
webpack
تفسیر می شود. اگر ارائه نشده باشد، مقدار پیشفرض[/\.map$/, /^manifest.*\.js$]
است. - ExcludeChunks
رشته[] اختیاری است
یک یا چند نام تکه ای که فایل های خروجی مربوطه آنها باید از مانیفست پیش کش حذف شوند.
- عبارتند از
(رشته | RegExp | تابع)[] اختیاری است
یک یا چند مشخص کننده برای گنجاندن دارایی ها در مانیفست پیش کش استفاده می شود. این با پیروی از همان قوانینی که گزینه
include
استانداردwebpack
تفسیر می شود. - حالت
رشته اختیاری
اگر روی "تولید" تنظیم شود، یک بسته سرویس بهینه سازی شده که اطلاعات اشکال زدایی را حذف نمی کند، تولید می شود. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار
mode
پیکربندی شده در مجموعهwebpack
فعلی استفاده خواهد شد.
مواد و روش ها
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
این کار روی مجموعه ای از کتابخانه های زمان اجرا استفاده شده توسط Workbox در یک فهرست محلی کپی می کند، که باید در کنار فایل Service Worker شما مستقر شود.
به عنوان جایگزینی برای استقرار این نسخههای محلی، میتوانید به جای آن از Workbox از URL رسمی CDN آن استفاده کنید.
این روش به نفع توسعه دهندگانی است که از workbox-build.injectManifest
استفاده می کنند و ترجیح می دهند از نسخه های CDN Workbox استفاده نکنند. توسعه دهندگانی که از workbox-build.generateSW
استفاده می کنند، نیازی به فراخوانی صریح این روش ندارند.
مولفه های
- destDirectory
رشته
مسیر دایرکتوری والد که در آن دایرکتوری جدید کتابخانه ها ایجاد می شود.
برمی گرداند
قول<رشته>
نام دایرکتوری تازه ایجاد شده.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
این روش فهرستی از 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: '...',
});
مولفه های
- پیکربندی
برمی گرداند
Promise< BuildResult >
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
این روش فهرستی از URL ها را به پیش کش برمی گرداند که به آن "مانیفست پیش کش" گفته می شود، به همراه جزئیاتی در مورد تعداد ورودی ها و اندازه آنها، بر اساس گزینه هایی که ارائه می کنید.
// 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,
)
مولفه های
- نام ماژول
رشته
- buildType
نوع ساخت
برمی گرداند
رشته
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
این روش فهرستی از 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: '...',
});
مولفه های
- پیکربندی
برمی گرداند
Promise< BuildResult >
ماژول workbox-build
در یک فرآیند ساخت مبتنی بر گره ادغام میشود و میتواند یک سرویسکار کامل ایجاد کند، یا فقط فهرستی از داراییها را برای پیش کش ایجاد کند که میتواند در یک سرویسکار موجود استفاده شود.
دو حالتی که اکثر توسعه دهندگان از آن استفاده می کنند عبارتند از generateSW
و injectManifest
. پاسخ به سوالات زیر می تواند به شما در انتخاب حالت و پیکربندی مناسب برای استفاده کمک کند.
از کدام حالت استفاده شود
generateSW
حالت generateSW
یک فایل Service Worker برای شما ایجاد می کند که از طریق گزینه های پیکربندی سفارشی شده است و آن را روی دیسک می نویسد.
زمان استفاده از generateSW
- می خواهید فایل ها را پیش کش کنید.
- شما نیازهای ذخیره سازی در زمان اجرا ساده دارید.
زمانی که از generateSW
استفاده نکنید
- میخواهید از سایر ویژگیهای Service Worker (به عنوان مثال Web Push ) استفاده کنید.
- میخواهید اسکریپتهای اضافی را وارد کنید، یا منطق اضافی برای استراتژیهای کش سفارشی اضافه کنید.
injectManifest
حالت injectManifest
لیستی از URL ها را برای پیش کش ایجاد می کند و آن مانیفست پیش کش را به فایل سرویس کارگر موجود اضافه می کند. در غیر این صورت فایل را همانطور که هست باقی می گذارد.
زمان استفاده از injectManifest
- شما می خواهید کنترل بیشتری بر کارمند خدمات خود داشته باشید.
- می خواهید فایل ها را پیش کش کنید.
- شما باید مسیریابی و استراتژی ها را سفارشی کنید.
- میخواهید از سرویسکار خود با سایر ویژگیهای پلتفرم (مانند Web Push ) استفاده کنید.
زمانی که از injectManifest
استفاده نکنید
- شما می خواهید ساده ترین راه را برای افزودن یک سرویس دهنده به سایت خود داشته باشید.
generateSW
حالت SW
میتوانید از حالت 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.`);
});
این یک مانیفست پیش کش بر اساس فایل هایی که توسط پیکربندی شما انتخاب شده است ایجاد می کند و آن را به فایل Service Worker موجود شما تزریق می کند.
مجموعه کاملی از گزینه های پیکربندی را می توان در مستندات مرجع یافت.
حالت های اضافی
ما انتظار داریم که 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
خواص
- اضافی ManifestEntries
(رشته | ManifestEntry )[] اختیاری است
فهرستی از ورودیهایی که باید از پیش ذخیره شوند، علاوه بر هر ورودی که به عنوان بخشی از پیکربندی ساخت ایجاد میشود.
- dontCacheBustURLsMatching
RegExp اختیاری است
داراییهایی که با این مطابقت دارند فرض میشوند که بهطور منحصربهفرد از طریق URL خود نسخهبندی شدهاند، و از تخریب حافظه پنهان HTTP که هنگام پر کردن پیش کش انجام میشود مستثنی هستند. اگرچه لازم نیست، توصیه میشود که اگر فرآیند ساخت موجود شما قبلاً یک مقدار
[hash]
را در هر نام فایل وارد میکند، یک RegExp ارائه دهید که آن را تشخیص میدهد، زیرا پهنای باند مصرفی هنگام پیشکش کردن را کاهش میدهد. - manifest Transforms می کند
ManifestTransform [] اختیاری است
یک یا چند تابع که به صورت متوالی در برابر مانیفست تولید شده اعمال می شوند. اگر
modifyURLPrefix
یاdontCacheBustURLsMatching
نیز مشخص شده باشد، ابتدا تبدیلهای مربوط به آنها اعمال میشود. - MaximumFileSizeToCacheInBytes
شماره اختیاری
مقدار پیش فرض: 2097152 است
از این مقدار می توان برای تعیین حداکثر اندازه فایل هایی که از قبل ذخیره می شوند استفاده کرد. این از شما جلوگیری می کند که به طور ناخواسته فایل های بسیار بزرگی را که ممکن است به طور تصادفی با یکی از الگوهای شما مطابقت داشته باشند، پیش کش کنید.
- modifyURLPrefix
شی اختیاری
پیشوندهای رشته نگاشت شیء به مقادیر رشته جایگزین می شود. اگر تنظیمات میزبانی وب شما با تنظیمات سیستم فایل محلی شما مطابقت نداشته باشد، میتوان از آن برای حذف یا افزودن پیشوند مسیر از ورودی مانیفست استفاده کرد. به عنوان یک جایگزین با انعطافپذیری بیشتر، میتوانید از گزینه
manifestTransforms
استفاده کنید و تابعی را ارائه دهید که ورودیهای مانیفست را با استفاده از هر منطقی که ارائه میکنید، تغییر میدهد.مثال استفاده:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
تایپ کنید
حذف< GetManifestResult "manifestEntries"
> & شی
خواص
- مسیرهای فایل
رشته[]
GeneratePartial
خواص
- babelPresetEnvTargets
رشته[] اختیاری است
مقدار پیشفرض این است: ["chrome >= 56"]
اهداف برای انتقال به
babel-preset-env
هنگام انتقال بسته سرویس کارگر. - cacheId
رشته اختیاری
یک شناسه اختیاری که باید به نامهای حافظه پنهان اضافه شود. این در درجه اول برای توسعه محلی مفید است که در آن چندین سایت ممکن است از یک منبع
http://localhost:port
ارائه شوند. - cleanupOutdatedCaches
بولی اختیاری
مقدار پیش فرض این است: false
اینکه آیا Workbox باید تلاش کند تا هر پیش کش ایجاد شده توسط نسخه های قدیمی تر و ناسازگار را شناسایی و حذف کند.
- ادعای مشتریان
بولی اختیاری
مقدار پیش فرض این است: false
اینکه آیا کارمند سرویس باید به محض فعال شدن ، کنترل هر یک از مشتریان موجود را شروع کند یا خیر.
- فهرست فهرست
رشته اختیاری
اگر یک درخواست پیمایش برای یک URL که به
/
ختم می شود با URL از پیش ذخیره شده مطابقت نداشته باشد، این مقدار به URL اضافه می شود و برای مطابقت پیش کش بررسی می شود. این باید به چیزی تنظیم شود که سرور وب شما برای فهرست فهرست خود از آن استفاده می کند. - غیرفعال کردن DevLogs
بولی اختیاری
مقدار پیش فرض این است: false
- ignoreURLParametersMatching
RegExp[] اختیاری است
هر نام پارامتر جستجو که با یکی از RegExp در این آرایه مطابقت داشته باشد، قبل از جستجو برای تطبیق پیش کش حذف خواهد شد. اگر کاربران شما ممکن است URL هایی را درخواست کنند که شامل پارامترهای URL هستند که برای ردیابی منبع ترافیک استفاده می شوند. اگر ارائه نشده باشد، مقدار پیشفرض
[/^utm_/, /^fbclid$/]
است. - importScripts
رشته[] اختیاری است
فهرستی از فایلهای جاوا اسکریپت که باید به
importScripts()
در داخل فایل service worker تولید شده ارسال شوند. این زمانی مفید است که میخواهید به Workbox اجازه دهید فایل سرویسدهنده سطح بالای شما را ایجاد کند، اما میخواهید کدهای اضافی مانند شنونده رویدادهای فشاری را نیز اضافه کنید. - inlineWorkboxRuntime
بولی اختیاری
مقدار پیش فرض این است: false
آیا کد زمان اجرا برای کتابخانه Workbox باید در سرویسکار سطح بالا گنجانده شود یا به یک فایل جداگانه تقسیم شود که باید در کنار سرویسکار مستقر شود. جدا نگه داشتن زمان اجرا به این معنی است که کاربران مجبور نیستند هر بار که سرویس دهنده سطح بالای شما تغییر می کند، کد Workbox را دوباره دانلود کنند.
- حالت
رشته اختیاری
مقدار پیش فرض این است: "production"
اگر روی "تولید" تنظیم شود، یک بسته سرویس بهینه سازی شده که اطلاعات اشکال زدایی را حذف نمی کند، تولید می شود. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار
process.env.NODE_ENV
استفاده خواهد شد و در صورت عدم موفقیت، به'production'
برمی گردد. رشته اختیاری
مقدار پیش فرض این است: null
اگر مشخص شده باشد، تمام درخواستهای پیمایش برای URLهایی که از پیش ذخیره نشدهاند، با HTML موجود در URL ارائهشده انجام میشوند. شما باید URL یک سند HTML را که در مانیفست پیش کش شما فهرست شده است، ارسال کنید. این به معنای استفاده در سناریوی برنامه تک صفحه است، که در آن شما میخواهید همه پیمایشها از HTML رایج App Shell استفاده کنند.
RegExp[] اختیاری است
آرایهای اختیاری از عبارات منظم که رفتار پیکربندیشده
navigateFallback
را محدود میکند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دوnavigateFallbackDenylist
وnavigateFallbackAllowlist
پیکربندی شده باشند، فهرست انکار مقدم است.توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.
RegExp[] اختیاری است
آرایهای اختیاری از عبارات منظم که رفتار پیکربندیشده
navigateFallback
را محدود میکند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دوnavigateFallbackDenylist
وnavigateFallbackAllowlist
پیکربندی شده باشند، فهرست انکار اولویت دارد.توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.
بولی اختیاری
مقدار پیش فرض این است: false
فعال کردن پیشبارگذاری ناوبری در سرویسکار تولید شده یا خیر. هنگامی که روی true تنظیم می شود، باید از
runtimeCaching
نیز برای تنظیم یک استراتژی پاسخ مناسب استفاده کنید که با درخواست های ناوبری مطابقت داشته باشد و از پاسخ از پیش بارگذاری شده استفاده کنید.- آفلاین GoogleAnalytics
بولی | GoogleAnalyticsInitializeOptions اختیاری است
مقدار پیش فرض این است: false
کنترل می کند که آیا پشتیبانی از Google Analytics آفلاین را شامل شود یا خیر. هنگامی که
true
، فراخوانیinitialize()
'sworkbox-google-analytics
به سرویس کار تولید شده شما اضافه می شود. وقتی روی یکObject
تنظیم شود، آن شی به فراخوانیinitialize()
ارسال می شود و به شما امکان می دهد رفتار را سفارشی کنید. - runtimeCaching
RuntimeCaching [] اختیاری است
وقتی از ابزارهای ساخت Workbox برای تولید سرویسکار خود استفاده میکنید، میتوانید یک یا چند پیکربندی کش زمان اجرا را مشخص کنید. سپس با استفاده از پیکربندی تطبیق و کنترلر که شما تعریف کردهاید، اینها به تماسهای
workbox-routing.registerRoute
ترجمه میشوند.برای همه گزینهها، به مستندات
workbox-build.RuntimeCaching
مراجعه کنید. مثال زیر یک پیکربندی معمولی را نشان می دهد که دو مسیر زمان اجرا تعریف شده است: - skipWaiting
بولی اختیاری
مقدار پیش فرض این است: false
آیا برای افزودن یک تماس بدون قید و شرط به
skipWaiting()
به سرویس کارگر تولید شده. اگرfalse
باشد، به جای آن یک شنوندهmessage
اضافه میشود که به صفحات سرویس گیرنده اجازه میدهدskipWaiting()
با فراخوانیpostMessage({type: 'SKIP_WAITING'})
در یک سرویسدهنده منتظر راهاندازی کنند. - نقشه منبع
بولی اختیاری
مقدار پیش فرض: true است
آیا برای ایجاد یک نقشه منبع برای فایل های سرویس کارگر تولید شده.
GenerateSWOptions
تایپ کنید
GetManifestOptions
تایپ کنید
GetManifestResult
خواص
- شمردن
عدد
- نوشته های مانیفست
- اندازه
عدد
- هشدارها
رشته[]
GlobPartial
خواص
- globFollow
بولی اختیاری
مقدار پیش فرض: true است
تعیین می کند که آیا در هنگام تولید مانیفست پیش کش دنبال می شود یا خیر. برای اطلاعات بیشتر، به تعریف
follow
در مستنداتglob
مراجعه کنید. - glob نادیده می گیرد
رشته[] اختیاری است
مقدار پیشفرض این است: ["**\/node_modules\/**\/*"]
مجموعهای از الگوهای منطبق با فایلها که همیشه هنگام تولید مانیفست پیش کش حذف میشوند. برای اطلاعات بیشتر، به تعریف
ignore
در مستنداتglob
مراجعه کنید. - الگوهای جهانی
رشته[] اختیاری است
مقدار پیش فرض این است: ["**\/*.{js,wasm,css,html}"]
فایل های مطابق با هر یک از این الگوها در مانیفست پیش کش گنجانده می شوند. برای اطلاعات بیشتر، پرایمر
glob
را ببینید. - globStrict
بولی اختیاری
مقدار پیش فرض: true است
اگر درست باشد، خطا در خواندن دایرکتوری هنگام ایجاد مانیفست پیش کش، باعث از کار افتادن ساخت می شود. اگر نادرست باشد، دایرکتوری مشکل دار حذف می شود. برای اطلاعات بیشتر، به تعریف
strict
در مستنداتglob
مراجعه کنید. - URL های قالب
شی اختیاری
اگر URL بر اساس منطق سمت سرور ارائه شود، محتویات آن ممکن است به چندین فایل یا مقدار رشته منحصر به فرد دیگری بستگی داشته باشد. کلیدهای موجود در این شی، URL های ارائه شده توسط سرور هستند. اگر مقادیر آرایهای از رشتهها باشند، بهعنوان الگوهای
glob
تفسیر میشوند و محتوای هر فایلی که با الگوها مطابقت دارد برای نسخه منحصربهفرد URL استفاده میشود. اگر با یک رشته استفاده شود، به عنوان اطلاعات نسخهسازی منحصربهفردی که برای یک URL معین ایجاد کردهاید، تفسیر میشود.
InjectManifestOptions
تایپ کنید
InjectPartial
خواص
- نقطه تزریق
رشته اختیاری
مقدار پیشفرض این است: "self.__WB_MANIFEST"
رشته ای که باید در داخل فایل
swSrc
پیدا شود. پس از یافتن، مانیفست پیش کش تولید شده جایگزین آن می شود. - swSrc
رشته
مسیر و نام پرونده پرونده کارگر سرویس که در طی فرآیند ساخت ، نسبت به فهرست کار فعلی خوانده می شود.
ManifestEntry
خواص
- تمامیت
رشته ای اختیاری
- تجدید نظر
رشته
- آدرس اینترنتی
رشته
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
تایپ کنید
تابع
مولفه های
- تجلی
( مانیفست و شی) []
- اندازه
عدد
- تلفیقی
اختیاری ناشناخته
برمی گرداند
ManifestTransformResult
خواص
- آشکار
( مانیفست و شی) []
- اندازه
عدد
- هشدارها
رشته [] اختیاری
OptionalGlobDirectoryPartial
خواص
- وابسته به مستقیم
رشته ای اختیاری
دایرکتوری محلی که می خواهید
globPatterns
در برابر آن مطابقت دهید. مسیر نسبت به فهرست فعلی است.
RequiredGlobDirectoryPartial
خواص
- وابسته به مستقیم
رشته
دایرکتوری محلی که می خواهید
globPatterns
در برابر آن مطابقت دهید. مسیر نسبت به فهرست فعلی است.
RequiredSWDestPartial
خواص
- متمایزترین
رشته
مسیر و نام پرونده پرونده کارگر سرویس که توسط فرآیند ساخت ، نسبت به فهرست کار فعلی ایجاد می شود. باید به ".js" پایان یابد.
RuntimeCaching
خواص
- کنترل کننده
این تعیین می کند که چگونه مسیر زمان اجرا پاسخی ایجاد می کند. برای استفاده از یکی از
workbox-strategies
داخلی ، نام خود را مانند'NetworkFirst'
ارائه دهید. از طرف دیگر ، این می تواند یک تابع پاسخworkbox-core.RouteHandler
باشد. - روش
httpmethod اختیاری
مقدار پیش فرض این است: "دریافت"
روش HTTP برای مطابقت با. مقدار پیش فرض
'GET'
به طور معمول کافی است ، مگر اینکه به صراحت نیاز به مطابقت با'POST'
،'PUT'
یا نوع دیگری از درخواست داشته باشید. - گزینه ها
شیء اختیاری
- پیشینه
شیء اختیاری
پیکربندی این امر به عنوان یک
workbox-background-sync.BackgroundSyncPlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می شود.- نام
رشته
- گزینه ها
صف اختیاری اختیاری
- پخش کردن
شیء اختیاری
پیکربندی این کار یک
workbox-broadcast-update.BroadcastUpdatePlugin
بهworkbox-strategies
پیکربندی شده درhandler
اضافه می کند.- نام کانال
رشته ای اختیاری
- گزینه ها
- نام تجاری
رشته ای اختیاری
در صورت ارائه ، این ویژگی
cacheName
را تنظیم می کند تاworkbox-strategies
پیکربندی شده درhandler
. - خط کش
CacheAblerSponseOptions اختیاری
پیکربندی این امر باعث می شود یک
workbox-cacheable-response.CacheableResponsePlugin
cacheableresponseponsplugin بهworkbox-strategies
پیکربندی شده درhandler
اضافه کنید. - انقضاء
EntriationPluginoptions اختیاری
پیکربندی این کار یک
workbox-expiration.ExpirationPlugin
workbox-strategies
اضافه می کندhandler
- تطبیق
درخواست اختیاری
پیکربندی این امر در امتداد مقدار
fetchOptions
بهworkbox-strategies
تنظیم شده درhandler
منتقل می شود. - تطبیق
cachequeryoptions اختیاری
پیکربندی این امر در امتداد مقدار
matchOptions
بهworkbox-strategies
تنظیم شده درhandler
منتقل می شود. - NetworktimeoutSeconds
شماره اختیاری
در صورت ارائه ، این ویژگی
networkTimeoutSeconds
ازworkbox-strategies
پیکربندی شده درhandler
را تنظیم می کند. توجه داشته باشید که فقط'NetworkFirst'
و'NetworkOnly'
ازnetworkTimeoutSeconds
پشتیبانی می کنند. - پلاگین ها
Workboxplugin [] اختیاری
پیکربندی این امر امکان استفاده از یک یا چند افزونه Workbox را که گزینه های "میانبر" ندارند (مانند
expiration
برایworkbox-expiration.ExpirationPlugin
) امکان پذیر است. افزونه های ارائه شده در اینجا بهworkbox-strategies
پیکربندی شده درhandler
اضافه می شوند. - پیشگویی
شیء اختیاری
پیکربندی این کار یک
workbox-precaching.PrecacheFallbackPlugin
workbox-strategies
اضافه می کندhandler
- گندیده
رشته
- Rangerequests
بولی اختیاری
فعال کردن این امر به عنوان یک
workbox-range-requests.RangeRequestsPlugin
باhandler
workbox-strategies
اضافه می شود.
- urlpattern
رشته | regexp | RoutematchCallback
این معیارهای مسابقه تعیین می کند که آیا کنترل کننده پیکربندی شده پاسخی برای هرگونه درخواست که مطابق با یکی از URL های از قبل باشد ، ایجاد می کند یا خیر. اگر چندین مسیر
RuntimeCaching
تعریف شود ، اولین موردی که مسابقاتurlPattern
آن پاسخ می دهد ، پاسخ می دهد.این مقدار به طور مستقیم به اولین پارامتر منتقل شده به
workbox-routing.registerRoute
نقشه می رود. توصیه می شود برای بیشترین انعطاف پذیری از یک تابعworkbox-core.RouteMatchCallback
استفاده کنید.
StrategyName
ارباب
"cachefirst" "حافظه پنهان" "Networkfirst" "شبکه" "stalewhilerevalidate"
WebpackGenerateSWOptions
تایپ کنید
WebpackGenerateSWPartial
خواص
- واردات
رشته [] اختیاری
یک یا چند نام از صفحه وب. محتوای این بخش ها از طریق تماس با
importScripts()
در کارگر تولید شده گنجانده می شود. - متمایزترین
رشته ای اختیاری
مقدار پیش فرض این است: "service-worker.js"
نام دارایی فایل سرویس دهنده سرویس ایجاد شده توسط این افزونه.
WebpackInjectManifestOptions
تایپ کنید
پایه های حزبی و وب حزبی و تزریق شده
WebpackInjectManifestPartial
خواص
- CompilesRC
بولی اختیاری
مقدار پیش فرض است: درست است
در صورت
true
(پیش فرض) ، پروندهswSrc
توسط WebPack تهیه می شود. هنگامی کهfalse
، تدوین رخ نمی دهد (و ازwebpackCompilationPlugins
استفاده نمی شود.) اگر می خواهید مانیفست را به عنوان مثال ، به عنوان مثال ، به عنوان مثال ، به عنوانfalse
تنظیم کنید. - متمایزترین
رشته ای اختیاری
نام دارایی فایل کارگر سرویس که توسط این افزونه ایجاد می شود. در صورت حذف ، نام بر اساس نام
swSrc
خواهد بود. - WebpackCompilatsPlugins
هر [] اختیاری
افزونه های
webpack
اختیاری که هنگام تهیه پرونده ورودیswSrc
استفاده می شوند. فقط اگرcompileSrc
true
باشد معتبر است.
WebpackPartial
خواص
- تکه ها
رشته [] اختیاری
یک یا چند نام تکه ای که پرونده های خروجی مربوطه باید در مانیفست Precache گنجانده شوند.
- حذف کردن
(رشته | regexp | تابع) [] اختیاری
یک یا چند مشخصات مورد استفاده برای حذف دارایی ها از مانیفست Precache. این به دنبال همان قوانینی که گزینه استاندارد
webpack
راexclude
تفسیر می شود. در صورت عدم ارائه ، مقدار پیش فرض[/\.map$/, /^manifest.*\.js$]
است. - استثناء
رشته [] اختیاری
یک یا چند نام تکه ای که پرونده های خروجی مربوطه باید از مانیفست Precache حذف شوند.
- عبارتند از
(رشته | regexp | تابع) [] اختیاری
یک یا چند مشخصات مورد استفاده برای شامل دارایی در مانیفست Precache. این به دنبال همان قوانینی که استاندارد
webpack
include
گزینه است ، تفسیر می شود. - حالت
رشته ای اختیاری
اگر روی "تولید" تنظیم شود ، یک بسته نرم افزاری بهینه شده سرویس دهنده که اطلاعات اشکال زدایی را حذف نمی کند ، تولید می شود. اگر در اینجا به صراحت پیکربندی نشده باشد ، از مقدار
mode
پیکربندی شده در مجموعه فعلیwebpack
استفاده می شود.
مواد و روش ها
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
این نسخه از مجموعه ای از کتابخانه های زمان اجرا که توسط Workbox به یک دایرکتوری محلی استفاده می شود ، که باید در کنار پرونده کارگر سرویس شما مستقر شود.
به عنوان جایگزینی برای استقرار این نسخه های محلی ، می توانید در عوض از صندوق کار از URL رسمی CDN آن استفاده کنید.
این روش به نفع توسعه دهندگان با استفاده از workbox-build.injectManifest
که ترجیح می دهد از نسخه های CDN جعبه کار استفاده نکند. توسعه دهندگان با استفاده از workbox-build.generateSW
نیازی به صریح این روش ندارند.
مولفه های
- بد اخلاق
رشته
مسیر دایرکتوری والدین که در آن دایرکتوری جدید کتابخانه ها ایجاد می شود.
برمی گرداند
وعده <string>
نام دایرکتوری تازه ایجاد شده.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
این روش لیستی از URL ها را برای Precache ایجاد می کند که به آن "مانیفست Precache" گفته می شود ، بر اساس گزینه هایی که ارائه می دهید.
همچنین گزینه های دیگری را نیز در نظر می گیرد که رفتار کارگر سرویس را پیکربندی می کند ، مانند هر قوانین runtimeCaching
که باید از آن استفاده کند.
بر اساس مانیفست Precache و پیکربندی اضافی ، یک فایل کارگر سرویس آماده استفاده را به دیسک در 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,
)
این روش لیستی از URL ها را به Precache باز می گرداند ، که از آن به عنوان "مانیفست Precache" یاد می شود ، به همراه جزئیات مربوط به تعداد ورودی ها و اندازه آنها ، بر اساس گزینه هایی که ارائه می دهید.
// 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: ...,
});
مولفه های
- پیکربندی
برمی گرداند
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
مولفه های
- نام
رشته
- نوع ساخت
نوع ساخت
برمی گرداند
رشته
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
این روش لیستی از URL ها را برای Precache ایجاد می کند که به آن "مانیفست Precache" گفته می شود ، بر اساس گزینه هایی که ارائه می دهید.
مانیفست به پرونده 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>