جعبه کار ساخت

ماژول 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' برمی گردد.

  • navigateFallback

    رشته اختیاری

    مقدار پیش فرض این است: null

    اگر مشخص شده باشد، تمام درخواست‌های پیمایش برای URLهایی که از پیش ذخیره نشده‌اند، با HTML موجود در URL ارائه‌شده انجام می‌شوند. شما باید URL یک سند HTML را که در مانیفست پیش کش شما فهرست شده است، ارسال کنید. این به معنای استفاده در سناریوی برنامه تک صفحه است، که در آن شما می‌خواهید همه پیمایش‌ها از HTML رایج App Shell استفاده کنند.

  • navigateFallbackAllowlist

    RegExp[] اختیاری است

    آرایه‌ای اختیاری از عبارات منظم که رفتار پیکربندی‌شده navigateFallback را محدود می‌کند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دو navigateFallbackDenylist و navigateFallbackAllowlist پیکربندی شده باشند، فهرست انکار مقدم است.

    توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.

  • navigateFallbackDenylist

    RegExp[] اختیاری است

    آرایه‌ای اختیاری از عبارات منظم که رفتار پیکربندی‌شده navigateFallback را محدود می‌کند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دو navigateFallbackDenylist و navigateFallbackAllowlist پیکربندی شده باشند، فهرست انکار اولویت دارد.

    توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.

  • ناوبری پیش بارگیری

    بولی اختیاری

    مقدار پیش فرض این است: false

    فعال کردن پیش‌بارگذاری ناوبری در سرویس‌کار تولید شده یا خیر. هنگامی که روی true تنظیم می شود، باید از runtimeCaching نیز برای تنظیم یک استراتژی پاسخ مناسب استفاده کنید که با درخواست های ناوبری مطابقت داشته باشد و از پاسخ از پیش بارگذاری شده استفاده کنید.

  • آفلاین GoogleAnalytics

    بولی | GoogleAnalyticsInitializeOptions اختیاری است

    مقدار پیش فرض این است: false

    کنترل می کند که آیا پشتیبانی از Google Analytics آفلاین را شامل شود یا خیر. هنگامی که true ، فراخوانی initialize() 's workbox-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)[]

    • اندازه

      عدد

  • تلفیقی

    ناشناخته اختیاری

برمی گرداند

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' یا نوع دیگری از درخواست داشته باشید.

  • گزینه ها

    شی اختیاری

  • 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: '...',
});

مولفه های

برمی گرداند

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: ...,
});

مولفه های

برمی گرداند

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: '...',
});

مولفه های

برمی گرداند

،

ماژول 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' برمی گردد.

  • navigateFallback

    رشته اختیاری

    مقدار پیش فرض این است: null

    اگر مشخص شده باشد، تمام درخواست‌های پیمایش برای URLهایی که از پیش ذخیره نشده‌اند، با HTML موجود در URL ارائه‌شده انجام می‌شوند. شما باید URL یک سند HTML را که در مانیفست پیش کش شما فهرست شده است، ارسال کنید. این به معنای استفاده در سناریوی برنامه تک صفحه است، که در آن شما می‌خواهید همه پیمایش‌ها از HTML رایج App Shell استفاده کنند.

  • navigateFallbackAllowlist

    RegExp[] اختیاری است

    آرایه‌ای اختیاری از عبارات منظم که رفتار پیکربندی‌شده navigateFallback را محدود می‌کند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دو navigateFallbackDenylist و navigateFallbackAllowlist پیکربندی شده باشند، فهرست انکار مقدم است.

    توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.

  • navigateFallbackDenylist

    RegExp[] اختیاری است

    آرایه‌ای اختیاری از عبارات منظم که رفتار پیکربندی‌شده navigateFallback را محدود می‌کند. این در صورتی مفید است که فقط زیر مجموعه ای از URL های سایت شما باید به عنوان بخشی از یک برنامه یک صفحه تلقی شوند. اگر هر دو navigateFallbackDenylist و navigateFallbackAllowlist پیکربندی شده باشند، فهرست انکار اولویت دارد.

    توجه : این RegExps ممکن است در طول یک پیمایش در برابر هر URL مقصد ارزیابی شود. از استفاده از RegExps پیچیده خودداری کنید، در غیر این صورت کاربران شما ممکن است در هنگام پیمایش سایت شما با تاخیر مواجه شوند.

  • ناوبری پیش بارگیری

    بولی اختیاری

    مقدار پیش فرض این است: false

    فعال کردن پیش‌بارگذاری ناوبری در سرویس‌کار تولید شده یا خیر. هنگامی که روی true تنظیم می شود، باید از runtimeCaching نیز برای تنظیم یک استراتژی پاسخ مناسب استفاده کنید که با درخواست های ناوبری مطابقت داشته باشد و از پاسخ از پیش بارگذاری شده استفاده کنید.

  • آفلاین GoogleAnalytics

    بولی | GoogleAnalyticsInitializeOptions اختیاری است

    مقدار پیش فرض این است: false

    کنترل می کند که آیا پشتیبانی از Google Analytics آفلاین را شامل شود یا خیر. هنگامی که true ، فراخوانی initialize() 's workbox-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' یا نوع دیگری از درخواست داشته باشید.

  • گزینه ها

    شیء اختیاری

  • 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: '...',
});

مولفه های

برمی گرداند

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: '...',
});

مولفه های

برمی گرداند