تندمج الوحدة 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'
. -
سلسلة اختيارية
القيمة التلقائية هي: null
وفي حال تحديدها، سيتم تنفيذ جميع طلبات التنقّل لعناوين URL التي لم يتم تخزينها مؤقتًا باستخدام رمز HTML على عنوان URL المقدَّم. يجب أن تمرر عنوان URL لمستند HTML الذي تم إدراجه في بيان التخزين المؤقت قبل التخزين المؤقت. من المفترض أن يُستخدم هذا في سيناريو تطبيق من صفحة واحدة، والذي تريد فيه أن تستخدم جميع عمليات التنقل رمز HTML الشائع لـ App Shell.
-
التعبير العادي[] اختياري
تمثّل هذه السمة مصفوفة اختيارية من التعبيرات العادية التي تفرض قيودًا على عناوين URL التي ينطبق عليها سلوك
navigateFallback
الذي تم ضبطه. ويكون هذا الإجراء مفيدًا إذا كان يجب التعامل فقط مع مجموعة فرعية من عناوين URL لموقعك الإلكتروني باعتبارها جزءًا من تطبيق صفحة واحدة. في حال ضبط كل منnavigateFallbackDenylist
وnavigateFallbackAllowlist
، تكون الأولوية لقائمة الحظر.ملاحظة: يمكن تقييم التعبير العادي هذا مقابل كل عنوان URL مقصود أثناء عملية التنقل. تجنَّب استخدام RegExps المعقّدة، وإلا قد يلاحظ المستخدمون تأخيرات عند التنقّل في موقعك الإلكتروني.
-
التعبير العادي[] اختياري
تمثّل هذه السمة مصفوفة اختيارية من التعبيرات العادية التي تفرض قيودًا على عناوين URL التي ينطبق عليها سلوك
navigateFallback
الذي تم ضبطه. ويكون هذا الإجراء مفيدًا إذا كان يجب التعامل فقط مع مجموعة فرعية من عناوين URL لموقعك الإلكتروني باعتبارها جزءًا من تطبيق صفحة واحدة. وإذا تم ضبط كل منnavigateFallbackDenylist
وnavigateFallbackAllowlist
، ستكون الأولوية لقائمة الحظر.ملاحظة: يمكن تقييم التعبير العادي هذا مقابل كل عنوان URL مقصود أثناء عملية التنقل. تجنَّب استخدام RegExps المعقّدة، وإلا قد يلاحظ المستخدمون تأخيرات عند التنقّل في موقعك الإلكتروني.
-
منطقية اختيارية
القيمة التلقائية هي: 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'
أو أي نوع آخر من الطلبات. -
الخيارات
الكائن اختياري
-
backgroundSync
الكائن اختياري
سيؤدي ضبط هذا الإعداد إلى إضافة مثيل
workbox-background-sync.BackgroundSyncPlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
.-
اسم
سلسلة
-
الخيارات
QueueOptions اختيارية
-
-
broadcastUpdate
الكائن اختياري
سيؤدي ضبط هذا الإعداد إلى إضافة مثيل
workbox-broadcast-update.BroadcastUpdatePlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
.-
channelName
سلسلة اختيارية
-
الخيارات
-
-
cacheName
سلسلة اختيارية
في حال توفيرها، سيؤدي ذلك إلى ضبط سمة
cacheName
لـworkbox-strategies
التي تم ضبطها فيhandler
. -
cacheableResponse
CacheableResponseOptions اختيارية
سيؤدي ضبط هذا الإعداد إلى إضافة مثيل
workbox-cacheable-response.CacheableResponsePlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
. -
expiration
ExpirationPluginOptions اختياري
سيؤدي ضبط هذا الإعداد إلى إضافة مثيل
workbox-expiration.ExpirationPlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
. -
fetchOptions
RequestInit اختياري
في حال ضبط هذا الإعداد، سيتم تمرير قيمة
fetchOptions
إلىworkbox-strategies
التي تم ضبطها فيhandler
. -
matchOptions
CacheQueryOptions اختياري
في حال ضبط هذا الإعداد، سيتم تمرير قيمة
matchOptions
إلىworkbox-strategies
التي تم ضبطها فيhandler
. -
networkTimeoutSeconds
الرقم اختياري
في حال توفيرها، سيؤدي ذلك إلى ضبط سمة
networkTimeoutSeconds
لـworkbox-strategies
التي تم ضبطها فيhandler
. يُرجى العلم أنّ الترميزَين'NetworkFirst'
و'NetworkOnly'
فقط يتيحان استخدامnetworkTimeoutSeconds
. -
مكونات إضافية
WorkboxPlugin[] اختيارية
يؤدي ضبط هذا إلى السماح باستخدام مكوّن إضافي واحد أو أكثر في Workbox لا يتضمن خيارات "الاختصار" (مثل
expiration
للرمزworkbox-expiration.ExpirationPlugin
). وستتم إضافة المكونات الإضافية الواردة هنا إلىworkbox-strategies
التي تم إعدادها فيhandler
. -
precacheFallback
الكائن اختياري
سيؤدي ضبط هذا الإعداد إلى إضافة مثيل
workbox-precaching.PrecacheFallbackPlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
.-
fallbackURL
سلسلة
-
-
rangeRequests
منطقية اختيارية
سيؤدي تفعيل هذا إلى إضافة مثيل
workbox-range-requests.RangeRequestsPlugin
إلىworkbox-strategies
الذي تم إعداده فيhandler
.
-
-
urlPattern
سلسلة | RegExp | RouteMatchCallback
تحدّد معايير المطابقة هذه ما إذا كان المعالج الذي تم إعداده سينشئ استجابة لأي طلبات لا تتطابق مع أحد عناوين URL المخزّنة مؤقتًا بشكلٍ مسبق. في حال تحديد مسارات
RuntimeCaching
متعددة، سيكون المسار الأول الذي تتطابق معهurlPattern
هو المسار الذي يستجيب.ويتم ربط هذه القيمة مباشرةً بالمَعلمة الأولى التي تم تمريرها إلى
workbox-routing.registerRoute
. ننصح باستخدام دالةworkbox-core.RouteMatchCallback
لتحقيق أكبر قدر من المرونة.
StrategyName
التعداد
"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: '...',
});
المعلمات
-
config
المرتجعات
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
تعرض هذه الطريقة قائمة بعناوين URL المراد تخزينها بشكل مسبق، والتي يُشار إليها باسم "بيان ذاكرة التخزين المؤقت"، إضافة إلى تفاصيل حول عدد الإدخالات وحجمها بناءً على الخيارات التي تقدّمها.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, manifestEntries, size, warnings} = await getManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
});
المعلمات
-
config
المرتجعات
-
Promise<GetManifestResult>
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: '...',
});
المعلمات
-
config
المرتجعات
-
Promise<BuildResult>