ماژول 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.
});
مجموعه کاملی از گزینه های پیکربندی را می توان در مستندات مرجع یافت.
- اضافی ManifestEntries(رشته | ManifestEntry )[] اختیاری است فهرستی از ورودیهایی که باید از پیش ذخیره شوند، علاوه بر هر ورودی که به عنوان بخشی از پیکربندی ساخت ایجاد میشود. 
- dontCacheBustURLsMatchingRegExp اختیاری است داراییهایی که با این مطابقت دارند فرض میشوند که بهطور منحصربهفرد از طریق 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', }
 حذف< GetManifestResult "manifestEntries"
 > & شی 
- مسیرهای فایلرشته[] 
- babelPresetEnvTargetsرشته[] اختیاری است مقدار پیشفرض این است: ["chrome >= 56"] اهداف برای انتقال به babel-preset-envهنگام انتقال بسته سرویس کارگر.
- cacheIdرشته اختیاری یک شناسه اختیاری که باید به نامهای حافظه پنهان اضافه شود. این در درجه اول برای توسعه محلی مفید است که در آن چندین سایت ممکن است از یک منبع http://localhost:portارائه شوند.
- cleanupOutdatedCachesبولی اختیاری مقدار پیش فرض این است: false اینکه آیا Workbox باید تلاش کند تا هر پیش کش ایجاد شده توسط نسخه های قدیمی تر و ناسازگار را شناسایی و حذف کند. 
- ادعای مشتریانبولی اختیاری مقدار پیش فرض این است: false اینکه آیا کارمند سرویس باید به محض فعال شدن، کنترل هر یک از مشتریان موجود را شروع کند یا خیر. 
- فهرست فهرسترشته اختیاری اگر یک درخواست پیمایش برای یک URL که به /ختم می شود با URL از پیش ذخیره شده مطابقت نداشته باشد، این مقدار به URL اضافه می شود و برای مطابقت پیش کش بررسی می شود. این باید به چیزی تنظیم شود که سرور وب شما برای فهرست فهرست خود از آن استفاده می کند.
- غیرفعال کردن DevLogsبولی اختیاری مقدار پیش فرض این است: false 
- ignoreURLParametersMatchingRegExp[] اختیاری است هر نام پارامتر جستجو که با یکی از 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()ارسال می شود و به شما امکان می دهد رفتار را سفارشی کنید.
- runtimeCachingRuntimeCaching [] اختیاری است وقتی از ابزارهای ساخت Workbox برای تولید سرویسکار خود استفاده میکنید، میتوانید یک یا چند پیکربندی کش زمان اجرا را مشخص کنید. سپس با استفاده از پیکربندی تطبیق و کنترلر که شما تعریف کردهاید، اینها به تماسهای workbox-routing.registerRouteترجمه میشوند.برای همه گزینهها، به مستندات workbox-build.RuntimeCachingمراجعه کنید. مثال زیر یک پیکربندی معمولی را نشان می دهد که دو مسیر زمان اجرا تعریف شده است:
- skipWaitingبولی اختیاری مقدار پیش فرض این است: false آیا برای افزودن یک تماس بدون قید و شرط به skipWaiting()به سرویس کارگر تولید شده. اگرfalseباشد، به جای آن یک شنوندهmessageاضافه میشود که به صفحات سرویس گیرنده اجازه میدهدskipWaiting()را با فراخوانیpostMessage({type: 'SKIP_WAITING'})در یک سرویسدهنده منتظر راهاندازی کنند.
- نقشه منبعبولی اختیاری مقدار پیش فرض: true است آیا برای ایجاد یک نقشه منبع برای فایل های سرویس کارگر تولید شده. 
- شمارششماره 
- نوشته های مانیفست
- اندازهشماره 
- هشدارهارشته[] 
- globFollowبولی اختیاری مقدار پیش فرض: true است تعیین می کند که آیا در هنگام تولید مانیفست پیش کش دنبال می شود یا خیر. برای اطلاعات بیشتر، به تعریف followدر مستنداتglobمراجعه کنید.
- glob نادیده می گیردرشته[] اختیاری است مقدار پیشفرض این است: ["**\/node_modules\/**\/*"] مجموعهای از الگوهای منطبق با فایلها که همیشه هنگام تولید مانیفست پیش کش حذف میشوند. برای اطلاعات بیشتر، به تعریف ignoreدر مستنداتglobمراجعه کنید.
- الگوهای جهانیرشته[] اختیاری است مقدار پیشفرض این است: ["**\/*.{js,wasm,css,html}"] فایل های مطابق با هر یک از این الگوها در مانیفست پیش کش گنجانده می شوند. برای اطلاعات بیشتر، پرایمر globرا ببینید.
- globStrictبولی اختیاری مقدار پیش فرض: true است اگر درست باشد، خطا در خواندن دایرکتوری هنگام ایجاد مانیفست پیش کش، باعث از کار افتادن ساخت می شود. اگر نادرست باشد، دایرکتوری مشکل دار حذف می شود. برای اطلاعات بیشتر، به تعریف strictدر مستنداتglobمراجعه کنید.
- URL های قالبشی اختیاری اگر URL بر اساس منطق سمت سرور ارائه شود، محتویات آن ممکن است به چندین فایل یا مقدار رشته منحصر به فرد دیگری بستگی داشته باشد. کلیدهای موجود در این شی، URL های ارائه شده توسط سرور هستند. اگر مقادیر آرایهای از رشتهها باشند، بهعنوان الگوهای globتفسیر میشوند و محتوای هر فایلی که با الگوها مطابقت دارد برای نسخه منحصربهفرد URL استفاده میشود. اگر با یک رشته استفاده شود، به عنوان اطلاعات نسخهسازی منحصربهفردی که برای یک URL معین ایجاد کردهاید، تفسیر میشود.
- نقطه تزریقرشته اختیاری مقدار پیشفرض این است: "self.__WB_MANIFEST" رشته ای که باید در داخل فایل swSrcپیدا شود. پس از یافتن، مانیفست پیش کش تولید شده جایگزین آن می شود.
- swSrcرشته مسیر و نام فایل فایل Service Worker که در طول فرآیند ساخت، نسبت به دایرکتوری کاری فعلی خوانده می شود. 
- یکپارچگیرشته اختیاری 
- تجدید نظررشته 
- آدرس اینترنتیرشته 
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
تابع
- نوشته های مانیفست( ManifestEntry & object)[] - اندازهشماره 
 
- تالیفناشناخته اختیاری 
- Promise< ManifestTransformResult > | ManifestTransform Result 
- آشکار( ManifestEntry & object)[] - اندازهشماره 
 
- هشدارهارشته[] اختیاری است 
- globDirectoryرشته اختیاری دایرکتوری محلی که می خواهید globPatternsبا آن مطابقت دهید. مسیر نسبت به دایرکتوری فعلی است.
- globDirectoryرشته دایرکتوری محلی که می خواهید globPatternsبا آن مطابقت دهید. مسیر نسبت به دایرکتوری فعلی است.
- swDestرشته مسیر و نام فایل فایل Service Worker که در فرآیند ساخت، نسبت به دایرکتوری کاری فعلی ایجاد می شود. باید به «.js» ختم شود. 
- کنترل کنندهاین تعیین می کند که مسیر زمان اجرا چگونه پاسخی را ایجاد می کند. برای استفاده از یکی از 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تنظیم میکند.
- cacheableResponseCacheableResponseOptions اختیاری است پیکربندی این یک نمونه workbox-cacheable-response.CacheableResponsePluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه می کند.
- انقضاExpirationPluginOptions اختیاری است پیکربندی این یک نمونه workbox-expiration.ExpirationPluginرا بهworkbox-strategiesپیکربندی شده درhandlerاضافه می کند.
- fetchOptionsRequestInit اختیاری است با پیکربندی این مقدار fetchOptionsبهworkbox-strategiesپیکربندی شده درhandlerمنتقل میشود.
- matchOptionsCacheQueryOptions اختیاری است با پیکربندی این مقدار 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استفاده کنید.
 "CacheFirst"   "فقط حافظه پنهان"   "شبکه اول"   "فقط شبکه"   "StaleWhileRevalidate" 
- importScriptsViaChunksرشته[] اختیاری است یک یا چند نام از تکه های بسته وب. محتوای آن تکه ها از طریق فراخوانی به importScripts()در سرویس کارگر تولید شده گنجانده می شود.
- swDestرشته اختیاری مقدار پیش فرض این است: "service-worker.js" نام دارایی فایل Service Worker ایجاد شده توسط این افزونه. 
- compileSrcبولی اختیاری مقدار پیش فرض: true است هنگامی که true(پیشفرض)، فایلswSrcتوسط webpack کامپایل میشود. وقتیfalse، کامپایل انجام نمیشود (و نمیتوان ازwebpackCompilationPluginsاستفاده کرد.) اگر میخواهید مانیفست را به عنوان مثال، در یک فایل JSON تزریق کنید، رویfalseتنظیم کنید.
- swDestرشته اختیاری نام دارایی فایل Service Worker که توسط این افزونه ایجاد خواهد شد. در صورت حذف، نام بر اساس نام swSrcخواهد بود.
- webpackCompilationPluginsهر[] اختیاری افزونه های webpackاختیاری که هنگام کامپایل فایل ورودیswSrcاستفاده می شود. فقط در صورتی معتبر است کهcompileSrctrueباشد.
- تکه هارشته[] اختیاری است یک یا چند نام تکهای که فایلهای خروجی مربوطه باید در مانیفست پیش کش گنجانده شوند. 
- حذف کردن(رشته | RegExp | تابع)[] اختیاری است یک یا چند مشخص کننده برای حذف دارایی ها از مانیفست پیش کش استفاده می شود. این با پیروی از قوانین مشابه با گزینه استاندارد excludewebpackتفسیر می شود. اگر ارائه نشده باشد، مقدار پیشفرض[/\.map$/, /^manifest.*\.js$]است.
- ExcludeChunksرشته[] اختیاری است یک یا چند نام تکه ای که فایل های خروجی مربوطه آنها باید از مانیفست پیش کش حذف شوند. 
- شامل شود(رشته | RegExp | تابع)[] اختیاری است یک یا چند مشخص کننده برای گنجاندن دارایی ها در مانیفست پیش کش استفاده می شود. این با پیروی از همان قوانینی که گزینه includeاستانداردwebpackتفسیر می شود.
- حالترشته اختیاری اگر روی "تولید" تنظیم شود، یک بسته سرویس بهینه سازی شده که اطلاعات اشکال زدایی را حذف نمی کند، تولید می شود. اگر به صراحت در اینجا پیکربندی نشده باشد، از مقدار modeپیکربندی شده در مجموعهwebpackفعلی استفاده خواهد شد.
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
این کار روی مجموعه ای از کتابخانه های زمان اجرا استفاده شده توسط Workbox در یک فهرست محلی کپی می کند، که باید در کنار فایل Service Worker شما مستقر شود.
به عنوان جایگزینی برای استقرار این نسخههای محلی، میتوانید به جای آن از Workbox از URL رسمی CDN آن استفاده کنید.
 این روش به نفع توسعه دهندگانی است که از workbox-build.injectManifest استفاده می کنند و ترجیح می دهند از نسخه های CDN Workbox استفاده نکنند. توسعه دهندگانی که از workbox-build.generateSW استفاده می کنند، نیازی به فراخوانی صریح این روش ندارند. 
- destDirectoryرشته مسیر دایرکتوری والد که در آن دایرکتوری جدید کتابخانه ها ایجاد می شود. 
- قول<رشته> - نام دایرکتوری تازه ایجاد شده. 
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 > 
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 > 
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
- نام ماژولرشته 
- buildTypeنوع ساخت 
- رشته 
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 >