ماژول 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,
): Promise<ManifestTransformResult> | ManifestTransformResult
تایپ کنید
تابع
پارامترها
- نوشته های مانیفست
( 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باشد. 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استفاده می شود. فقط در صورتی معتبر است کهcompileSrctrueباشد.
WebpackPartial
خواص
- تکه ها
رشته[] اختیاری است
یک یا چند نام تکهای که فایلهای خروجی مربوطه باید در مانیفست پیش کش گنجانده شوند.
- حذف کردن
(رشته | RegExp | تابع)[] اختیاری است
یک یا چند مشخص کننده برای حذف دارایی ها از مانیفست پیش کش استفاده می شود. این با پیروی از قوانین مشابه با گزینه استاندارد
excludewebpackتفسیر می شود. اگر ارائه نشده باشد، مقدار پیشفرض[/\.map$/, /^manifest.*\.js$]است. - ExcludeChunks
رشته[] اختیاری است
یک یا چند نام تکه ای که فایل های خروجی مربوطه آنها باید از مانیفست پیش کش حذف شوند.
- شامل شود
(رشته | RegExp | تابع)[] اختیاری است
یک یا چند مشخص کننده برای گنجاندن دارایی ها در مانیفست پیش کش استفاده می شود. این با پیروی از همان قوانینی که گزینه
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 استفاده می کنند، نیازی به فراخوانی صریح این روش ندارند.
پارامترها
- destDirectory
رشته
مسیر دایرکتوری والد که در آن دایرکتوری جدید کتابخانه ها ایجاد می شود.
برمی گرداند
قول<رشته>
نام دایرکتوری تازه ایجاد شده.
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: '...',
});
پارامترها
- پیکربندی
برمی گرداند
Promise< BuildResult >
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
این روش فهرستی از 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,
): string
پارامترها
- نام ماژول
رشته
- buildType
نوع ساخت
برمی گرداند
رشته
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: '...',
});
پارامترها
- پیکربندی
برمی گرداند
Promise< BuildResult >