وضع إطار العمل

تندمج الوحدة workbox-build في عملية إنشاء مستندة إلى عُقدة، ويمكنها إنشاء مشغّل خدمات بأكمله أو إنشاء قائمة بمواد العرض التي يمكن تخزينها مؤقتًا ويمكن استخدامها ضِمن مشغّل خدمات حالي.

سيستخدم معظم المطوِّرين الوضعَين generateSW وinjectManifest. يمكن أن تساعدك الإجابات عن الأسئلة التالية في اختيار الوضع والضبط المناسبين للاستخدام.

الوضع الذي يمكن استخدامه

generateSW

ينشئ الوضع generateSW ملف مشغّل خدمات لك، ويتم تخصيصه من خلال خيارات الإعداد، ويكتبه على القرص.

حالات استخدام generateSW

  • تريد تخزين الملفات مؤقتًا بشكل مسبق.
  • لديك احتياجات بسيطة للتخزين المؤقت في وقت التشغيل.

الحالات التي يُحظر فيها استخدام generateSW

  • إذا كنت تريد استخدام ميزات "مشغّل الخدمات" الأخرى (مثل Web Push).
  • تريد استيراد نصوص برمجية إضافية أو إضافة منطق إضافي لاستراتيجيات التخزين المؤقت المخصصة.

injectManifest

سينشئ الوضع injectManifest قائمة بعناوين URL لتخزينها مُسبقًا، كما سيضيف ملف بيان التخزين المؤقت هذا إلى ملف مشغّل خدمات حالي. وإلا سيترك الملف كما هو.

حالات استخدام injectManifest

  • تريد المزيد من التحكّم في مشغّل الخدمات.
  • تريد تخزين الملفات مؤقتًا بشكل مسبق.
  • عليك تخصيص التوجيه والاستراتيجيات.
  • إذا كنت تريد استخدام مشغّل الخدمات مع ميزات أخرى للأنظمة الأساسية (مثل Web Push).

الحالات التي يُحظر فيها استخدام injectManifest

  • أنت تريد أسهل مسار لإضافة عامل خدمات إلى موقعك الإلكتروني.

وضع generateSW

يمكنك استخدام الوضع generateSW في نص برمجي لإنشاء مستند إلى عقدة، وذلك باستخدام خيارات الإعداد الأكثر شيوعًا، كما يلي:

// Inside of build.js:
const {generateSW} = require('workbox-build');

// These are some common options, and not all are required.
// Consult the docs for more info.
generateSW({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  navigateFallback: '...',
  runtimeCaching: [{
    // Routing via a matchCallback function:
    urlPattern: ({request, url}) => ...,
    handler: '...',
    options: {
      cacheName: '...',
      expiration: {
        maxEntries: ...,
      },
    },
  }, {
    // Routing via a RegExp:
    urlPattern: new RegExp('...'),
    handler: '...',
    options: {
      cacheName: '...',
      plugins: [..., ...],
    },
  }],
  skipWaiting: ...,
  swDest: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while generating a service worker:',
      warnings.join('\n')
    );
  }

  console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
});

وسيؤدي هذا إلى إنشاء مشغّل خدمات باستخدام إعداد التخزين المؤقت لجميع الملفات التي تم اختيارها من خلال الإعدادات، وقواعد التخزين المؤقت لوقت التشغيل المقدّمة.

يمكن العثور على مجموعة كاملة من خيارات الضبط في المستندات المرجعية.

وضع injectManifest

يمكنك استخدام الوضع injectManifest في نص برمجي لإنشاء مستند إلى عقدة، وذلك باستخدام خيارات الإعداد الأكثر شيوعًا، كما يلي:

// Inside of build.js:
const {injectManifest} = require('workbox-build');

// These are some common options, and not all are required.
// Consult the docs for more info.
injectManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  swDest: '...',
  swSrc: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while injecting the manifest:',
      warnings.join('\n')
    );
  }

  console.log(`Injected a manifest which will precache ${count} files, totaling ${size} bytes.`);
});

سيؤدي هذا الإجراء إلى إنشاء بيان خاص بـ Precache استنادًا إلى الملفات التي تم اختيارها من خلال الإعدادات، وإدخاله في ملف مشغّل الخدمات الحالي.

يمكن العثور على مجموعة كاملة من خيارات الضبط في المستندات المرجعية.

أوضاع إضافية

نتوقّع أن يلبّي 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

أماكن إقامة

  • additionalManifestEntries

    (سلسلة | ManifestEntry)[] اختيارية

    تمثّل هذه السمة قائمة بالإدخالات المطلوب تخزينها مؤقتًا بشكل مسبق، بالإضافة إلى أي إدخالات يتم إنشاؤها كجزء من إعدادات التصميم.

  • dontCacheBustURLsMatching

    التعبير العادي اختياري

    وسيتم افتراض أن مواد العرض التي تتطابق مع هذا النوع من مواد العرض تتوفر لها نُسخ فريدة من خلال عنوان URL الخاص بها، وأن يتم إعفاؤها من عملية اختراق ذاكرة التخزين المؤقت المعتادة لبروتوكول HTTP التي تتم عند تعبئة ذاكرة التخزين المؤقت المسبق. رغم أنّه ليس مطلوبًا، ننصح بتقديم قيمة [hash] في كل اسم ملفّ، إلا أنّنا ننصحك بتقديم تعبير عادي يرصد ذلك، لأنّه سيقلّل من معدل نقل البيانات المُستخدَم في التخزين المؤقت.

  • manifestTransforms

    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"
> & الكائن

أماكن إقامة

  • filePaths

    سلسلة[]

GeneratePartial

أماكن إقامة

  • babelPresetEnvTargets

    سلسلة[] اختيارية

    القيمة التلقائية هي: ["chrome >= 56"].

    تمثّل هذه السمة الأهداف المطلوب ضبطها إلى babel-preset-env عند تحويل حزمة مشغّلي الخدمات.

  • cacheId

    سلسلة اختيارية

    معرّف اختياري يتم إضافته قبل أسماء ذاكرة التخزين المؤقت ويكون ذلك مفيدًا في المقام الأول للتطوير المحلي حيث قد يتم عرض مواقع إلكترونية متعددة من مصدر http://localhost:port نفسه.

  • cleanupOutdatedCaches

    منطقية اختيارية

    القيمة التلقائية هي: false.

    ما إذا كان يجب أن يحاول Workbox تحديد وحذف أي ذاكرات تخزين مؤقتة تم إنشاؤها بواسطة إصدارات قديمة غير متوافقة.

  • clientsClaim

    منطقية اختيارية

    القيمة التلقائية هي: false.

    ما إذا كان يجب على عامل الخدمة بدء التحكم في أي عملاء حاليين فور تنشيطه.

  • directoryIndex

    سلسلة اختيارية

    إذا تعذّر على طلب التنقّل لعنوان URL ينتهي بـ / أن يطابق عنوان URL مخزنًا مؤقتًا بشكل مسبق، سيتم إلحاق هذه القيمة بعنوان URL وسيتم التحقق منها بحثًا عن تطابُق في ذاكرة التخزين المؤقت. يجب ضبط هذا الإجراء على ما يستخدمه خادم الويب في فهرس الدليل.

  • disableDevLogs

    منطقية اختيارية

    القيمة التلقائية هي: false.

  • ignoreURLParametersMatching

    التعبير العادي[] اختياري

    وستتم إزالة أي أسماء مَعلمات بحث تتطابق مع أحد تعبيرات التعبير العادي في هذه المصفوفة قبل البحث عن تطابق مُخزَّن مسبقًا. ويكون هذا الإجراء مفيدًا إذا كان المستخدمون قد يطلبون عناوين URL تتضمّن، على سبيل المثال، مَعلمات عناوين URL المستخدَمة لتتبّع مصدر الزيارات. وفي حال عدم توفيرها، تكون القيمة التلقائية هي [/^utm_/, /^fbclid$/].

  • importScripts

    سلسلة[] اختيارية

    قائمة بملفات JavaScript التي يجب تمريرها إلى importScripts() داخل ملف مشغّل الخدمات الذي تم إنشاؤه. يكون هذا مفيدًا عندما تريد السماح لـ Workbox بإنشاء ملف مشغّل الخدمات ذي المستوى الأعلى، ولكنك تريد تضمين بعض التعليمات البرمجية الإضافية، مثل أداة معالجة أحداث الدفع.

  • inlineWorkboxRuntime

    منطقية اختيارية

    القيمة التلقائية هي: false.

    تحدّد هذه السمة ما إذا كان يجب تضمين رمز وقت التشغيل لمكتبة Workbox في مشغّل الخدمات ذي المستوى الأعلى، أو تقسيمه إلى ملف منفصل يجب نشره مع عامل الخدمة. يعني فصل وقت التشغيل أن المستخدمين لن يضطروا إلى إعادة تنزيل رمز Workbox في كل مرة يتغير فيها عامل الخدمة ذو المستوى الأعلى.

  • الوضع

    سلسلة اختيارية

    القيمة التلقائية هي: "production".

    في حال ضبط هذه السياسة على "الإنتاج"، سيتم إنشاء حزمة مشغّل خدمات محسَّنة تستثني معلومات تصحيح الأخطاء. إذا لم يتم ضبط القيمة هنا بشكل صريح، سيتم استخدام القيمة process.env.NODE_ENV، وفي حال عدم ضبط هذه القيمة بشكل صريح، سيتم ضبطها على 'production'.

  • navigateFallback

    سلسلة اختيارية

    القيمة التلقائية هي: null

    وفي حال تحديدها، سيتم تنفيذ جميع طلبات التنقّل لعناوين URL التي لم يتم تخزينها مؤقتًا باستخدام رمز HTML على عنوان URL المقدَّم. يجب أن تمرر عنوان URL لمستند HTML الذي تم إدراجه في بيان التخزين المؤقت قبل التخزين المؤقت. من المفترض أن يُستخدم هذا في سيناريو تطبيق من صفحة واحدة، والذي تريد فيه أن تستخدم جميع عمليات التنقل رمز HTML الشائع لـ App Shell.

  • navigateFallbackAllowlist

    التعبير العادي[] اختياري

    تمثّل هذه السمة مصفوفة اختيارية من التعبيرات العادية التي تفرض قيودًا على عناوين URL التي ينطبق عليها سلوك navigateFallback الذي تم ضبطه. ويكون هذا الإجراء مفيدًا إذا كان يجب التعامل فقط مع مجموعة فرعية من عناوين URL لموقعك الإلكتروني باعتبارها جزءًا من تطبيق صفحة واحدة. في حال ضبط كل من navigateFallbackDenylist وnavigateFallbackAllowlist، تكون الأولوية لقائمة الحظر.

    ملاحظة: يمكن تقييم التعبير العادي هذا مقابل كل عنوان URL مقصود أثناء عملية التنقل. تجنَّب استخدام RegExps المعقّدة، وإلا قد يلاحظ المستخدمون تأخيرات عند التنقّل في موقعك الإلكتروني.

  • navigateFallbackDenylist

    التعبير العادي[] اختياري

    تمثّل هذه السمة مصفوفة اختيارية من التعبيرات العادية التي تفرض قيودًا على عناوين URL التي ينطبق عليها سلوك navigateFallback الذي تم ضبطه. ويكون هذا الإجراء مفيدًا إذا كان يجب التعامل فقط مع مجموعة فرعية من عناوين URL لموقعك الإلكتروني باعتبارها جزءًا من تطبيق صفحة واحدة. وإذا تم ضبط كل من navigateFallbackDenylist وnavigateFallbackAllowlist، ستكون الأولوية لقائمة الحظر.

    ملاحظة: يمكن تقييم التعبير العادي هذا مقابل كل عنوان URL مقصود أثناء عملية التنقل. تجنَّب استخدام RegExps المعقّدة، وإلا قد يلاحظ المستخدمون تأخيرات عند التنقّل في موقعك الإلكتروني.

  • navigationPreload

    منطقية اختيارية

    القيمة التلقائية هي: false.

    لتحديد ما إذا كان سيتم تفعيل التحميل المُسبق للتنقّل في مشغّل الخدمة الذي تم إنشاؤه أم لا. وعند ضبطها على "صحيح"، عليك أيضًا استخدام runtimeCaching لإعداد استراتيجية استجابة مناسبة تتطابق مع طلبات التنقّل، والاستفادة من الاستجابة المحمَّلة مُسبَقًا.

  • offlineGoogleAnalytics

    منطقية | GoogleAnalyticsInitializeOptions اختيارية

    القيمة التلقائية هي: false.

    تتحكّم في ما إذا كان سيتم تضمين الدعم لخدمة "إحصاءات Google" بلا اتصال بالإنترنت أم لا. عند true، ستتم إضافة المكالمة إلى initialize() في 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

أماكن إقامة

  • العدد

    الرقم

  • manifestEntries
  • الحجم

    الرقم

  • تحذيرات

    سلسلة[]

GlobPartial

أماكن إقامة

  • globFollow

    منطقية اختيارية

    القيمة التلقائية هي: true.

    تحدد ما إذا كان يتم اتباع الروابط الرمزية أم لا عند إنشاء بيان التخزين المؤقت المسبق. لمزيد من المعلومات، يُرجى الاطّلاع على تعريف follow في مستندات glob.

  • globIgnores

    سلسلة[] اختيارية

    القيمة التلقائية هي: ["**\/node_modules\/**\/*"]

    مجموعة من الأنماط المطابقة للملفات المطلوب استبعادها دائمًا عند إنشاء بيان التخزين المؤقت المسبق. لمزيد من المعلومات، يُرجى الاطّلاع على تعريف ignore في مستندات glob.

  • globPatterns

    سلسلة[] اختيارية

    القيمة التلقائية هي: ["**\/*.{js,hasm,css,html}"]

    سيتم تضمين الملفات التي تطابق أيًا من هذه الأنماط في بيان التخزين المؤقت المسبق. لمزيد من المعلومات، راجِع رسالة glob التمهيدية.

  • globStrict

    منطقية اختيارية

    القيمة التلقائية هي: true.

    إذا كانت القيمة true، سيؤدي حدوث خطأ أثناء قراءة دليل عند إنشاء بيان ذاكرة التخزين المؤقت المسبق إلى تعذُّر التصميم. في حال اختيار القيمة "false"، سيتم تخطّي الدليل الذي يتضمّن المشكلة. لمزيد من المعلومات، يُرجى الاطّلاع على تعريف السمة strict في المستندات glob.

  • templatedURLs

    الكائن اختياري

    إذا تم عرض عنوان URL استنادًا إلى منطق من جهة الخادم، قد يعتمد محتواه على ملفات متعددة أو على قيمة سلسلة فريدة أخرى. والمفاتيح في هذا الكائن هي عناوين URL يعرضها الخادم. إذا كانت القيم مصفوفة من السلاسل، سيتم تفسيرها على أنها أنماط glob وسيتم استخدام محتوى أي ملفات مطابقة للأنماط لإنشاء نسخة من عنوان URL بشكل فريد. وإذا تم استخدامها مع سلسلة واحدة، فسيتم تفسيرها على أنها معلومات تحديد إصدارات فريدة أنشأتها لعنوان URL معين.

InjectManifestOptions

InjectPartial

أماكن إقامة

  • injectionPoint

    سلسلة اختيارية

    القيمة التلقائية هي: "self.__WB_MANIFEST"

    السلسلة التي تبحث عنها داخل ملف swSrc. بمجرد العثور عليه، سيتم استبداله ببيان التخزين المؤقت الذي تم إنشاؤه.

  • swSrc

    سلسلة

    تشير هذه السمة إلى المسار واسم ملفّ ملف مشغّل الخدمات الذي ستتم قراءته أثناء عملية التصميم، وذلك مقارنةً بدليل العمل الحالي.

ManifestEntry

أماكن إقامة

  • صحة البيانات

    سلسلة اختيارية

  • مراجعة

    سلسلة

  • url

    سلسلة

ManifestTransform()

workbox-build.ManifestTransform(
  manifestEntries: (ManifestEntry & object)[],
  compilation?: unknown,
)

النوع

الوظيفة

المعلمات

  • manifestEntries

    (ManifestEntry وكائنه)[]

    • الحجم

      الرقم

  • فيديو مجمّع

    غير معروف اختياري

المرتجعات

ManifestTransformResult

أماكن إقامة

  • البيان

    (ManifestEntry وكائنه)[]

    • الحجم

      الرقم

  • تحذيرات

    سلسلة[] اختيارية

OptionalGlobDirectoryPartial

أماكن إقامة

  • globDirectory

    سلسلة اختيارية

    الدليل المحلي الذي تريد مطابقة globPatterns معه. يرتبط المسار بالدليل الحالي.

RequiredGlobDirectoryPartial

أماكن إقامة

  • globDirectory

    سلسلة

    الدليل المحلي الذي تريد مطابقة globPatterns معه. يرتبط المسار بالدليل الحالي.

RequiredSWDestPartial

أماكن إقامة

  • swDest

    سلسلة

    تشير هذه السمة إلى المسار واسم ملفّ ملف مشغّل الخدمات الذي سيتم إنشاؤه من خلال عملية التصميم، وذلك مقارنةً بدليل العمل الحالي. يجب أن ينتهي بـ "js.".

RuntimeCaching

أماكن إقامة

  • المعالج

    ويحدِّد هذا كيفية إنشاء استجابة مسار وقت التشغيل. لاستخدام أحد ميزات workbox-strategies المُدمَجة، عليك إدخال اسمه، مثل 'NetworkFirst'. بدلاً من ذلك، يمكن أن تكون هذه دالة معاودة الاتصال في workbox-core.RouteHandler مع منطق استجابة مخصص.

  • method

    HTTPMethod اختياري

    القيمة التلقائية هي: "GET"

    طريقة HTTP المطلوب المطابقة معها. عادةً ما تكون القيمة التلقائية للسمة 'GET' كافية، إلا إذا كنت بحاجة إلى مطابقة 'POST' أو 'PUT' أو أي نوع آخر من الطلبات.

  • الخيارات

    الكائن اختياري

  • urlPattern

    سلسلة | RegExp | RouteMatchCallback

    تحدّد معايير المطابقة هذه ما إذا كان المعالج الذي تم إعداده سينشئ استجابة لأي طلبات لا تتطابق مع أحد عناوين URL المخزّنة مؤقتًا بشكلٍ مسبق. في حال تحديد مسارات RuntimeCaching متعددة، سيكون المسار الأول الذي تتطابق معه urlPattern هو المسار الذي يستجيب.

    ويتم ربط هذه القيمة مباشرةً بالمَعلمة الأولى التي تم تمريرها إلى workbox-routing.registerRoute. ننصح باستخدام دالة workbox-core.RouteMatchCallback لتحقيق أكبر قدر من المرونة.

StrategyName

التعداد

"NetworkFirst"

WebpackGenerateSWOptions

WebpackGenerateSWPartial

أماكن إقامة

  • importScriptsViaChunks

    سلسلة[] اختيارية

    اسم واحد أو أكثر من مقاطع حزمة الويب. سيتم تضمين محتوى هذه الأجزاء في مشغّل الخدمات الذي تم إنشاؤه، وذلك من خلال الاتصال بـ importScripts().

  • swDest

    سلسلة اختيارية

    القيمة التلقائية هي: "service-worker.js".

    اسم مادة العرض لملف مشغّل الخدمات الذي أنشأه هذا المكوّن الإضافي

WebpackInjectManifestOptions

WebpackInjectManifestPartial

أماكن إقامة

  • compileSrc

    منطقية اختيارية

    القيمة التلقائية هي: true.

    عند استخدام true (الخيار التلقائي)، سيتم تجميع ملف swSrc من خلال حزمة الويب. عند false، لن يحدث التجميع (ولا يمكن استخدام webpackCompilationPlugins). اضبط القيمة على false إذا كنت تريد إدخال البيان في، مثل ملف JSON.

  • swDest

    سلسلة اختيارية

    اسم مادة العرض لملف مشغّل الخدمات الذي سينشئه هذا المكوّن الإضافي. وفي حال حذفه، سيستند الاسم إلى اسم 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 إلى دليل محلي، والذي يجب نشره إلى جانب ملف عامل الخدمة.

وكبديل لنشر هذه النسخ المحلية، يمكنك بدلاً من ذلك استخدام Workbox من عنوان URL الرسمي لشبكة توصيل المحتوى (CDN).

تم طرح هذه الطريقة للمطوّرين الذين يستخدمون workbox-build.injectManifest الذين يفضّلون عدم استخدام نُسخ CDN من Workbox. وليس على المطوّرين الذين يستخدمون workbox-build.generateSW تسمية هذه الطريقة صراحةً.

المعلمات

  • destDirectory

    سلسلة

    المسار إلى الدليل الأصلي الذي سيتم ضمنه إنشاء دليل المكتبات الجديد.

المرتجعات

  • وعد<string>

    اسم الدليل الذي تم إنشاؤه حديثًا.

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,
)

المعلمات

  • moduleName

    سلسلة

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

المعلمات

المرتجعات