המודול workbox-build משתלב בתהליך בנייה מבוסס-צומת ויכול ליצור service worker שלם, או רק ליצור רשימה של נכסים להוספה למטמון מראש שאפשר להשתמש בהם ב-service worker קיים.
שני המצבים שרוב המפתחים ישתמשו בהם הם generateSW וinjectManifest. התשובות לשאלות הבאות יעזרו לכם לבחור את המצב וההגדרה המתאימים לשימוש.
באיזה מצב כדאי להשתמש
generateSW
מצב generateSW יוצר בשבילכם קובץ service worker בהתאמה אישית באמצעות אפשרויות הגדרה, וכותב אותו לדיסק.
מתי כדאי להשתמש בgenerateSW
- אתם רוצים לבצע שמירה מראש במטמון של קבצים.
- יש לכם צורך פשוט במטמון בזמן ריצה.
מתי לא מומלץ להשתמש בgenerateSW
- אתם רוצים להשתמש בתכונות אחרות של Service Worker (למשל Web Push).
- רוצים לייבא סקריפטים נוספים או להוסיף לוגיקה נוספת לשיטות אחסון במטמון בהתאמה אישית.
injectManifest
במצב injectManifest תיווצר רשימה של כתובות URL לשמירה במטמון מראש, והרשימה הזו תתווסף לקובץ קיים של Service Worker. אחרת, הקובץ יישאר כמו שהוא.
מתי כדאי להשתמש בinjectManifest
- אתם רוצים יותר שליטה על Service Worker.
- אתם רוצים לבצע שמירה מראש במטמון של קבצים.
- צריך להתאים אישית את הניתוב ואת האסטרטגיות.
- רוצים להשתמש ב-service worker עם תכונות אחרות של הפלטפורמה (לדוגמה, Web Push).
מתי לא מומלץ להשתמש בinjectManifest
- אתם רוצים את הדרך הכי קלה להוסיף Service Worker לאתר שלכם.
generateSW מצב
אפשר להשתמש במצב generateSW בסקריפט build מבוסס-צומת, באמצעות אפשרויות ההגדרה הנפוצות ביותר, באופן הבא:
// 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.`);
});
הפעולה הזו תיצור service worker עם הגדרת טרום-שמירה במטמון לכל הקבצים שנבחרו על ידי התצורה ולכל כללי השמירה במטמון של זמן הריצה שסופקו.
במאמרי העזרה מופיע סט מלא של אפשרויות ההגדרה.
injectManifest מצב
אפשר להשתמש במצב injectManifest בסקריפט build מבוסס-צומת, באמצעות אפשרויות ההגדרה הנפוצות ביותר, באופן הבא:
// 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, אבל במקום להוסיף את קובץ המניפסט לקובץ של ה-service worker של מקור, הפונקציה מחזירה את מערך רשומות המניפסט, יחד עם מידע על מספר הרשומות והגודל הכולל.
אפשר להשתמש במצב injectManifest בסקריפט build מבוסס-צומת, באמצעות אפשרויות ההגדרה הנפוצות ביותר, באופן הבא:
// 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
(string | ManifestEntry)[] optional
רשימה של רשומות שצריך להוסיף למטמון מראש, בנוסף לכל הרשומות שנוצרות כחלק מהגדרת הבנייה.
-
dontCacheBustURLsMatching
ביטוי רגולרי אופציונלי
אם נכס מסוים תואם לדפוס הזה, המערכת תניח שיש לו גרסה ייחודית שמוגדרת באמצעות כתובת ה-URL שלו, והוא לא ייכלל בביטול הרגיל של מטמון HTTP שמתבצע כשמאכלסים את המטמון מראש. אף על פי שזה לא חובה, מומלץ לספק ביטוי רגולרי שיזהה את הערך הזה, אם תהליך ה-build הקיים כבר מוסיף ערך
[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
סוג
Omit<GetManifestResult"manifestEntries"
> & object
מאפיינים
-
filePaths
string[]
GeneratePartial
מאפיינים
-
babelPresetEnvTargets
string[] אופציונלי
ערך ברירת המחדל הוא: ["chrome >= 56"]
יעדים להעברה אל
babel-preset-envכשמבצעים הידור של חבילת ה-service worker. -
cacheId
מחרוזת אופציונלי
מזהה אופציונלי שיופיע לפני שמות המטמון. האפשרות הזו שימושית בעיקר לפיתוח מקומי, שבו יכול להיות שאתרים שונים יוגשו מאותו
http://localhost:portמקור. -
cleanupOutdatedCaches
boolean אופציונלי
ערך ברירת המחדל הוא: false
האם Workbox צריך לנסות לזהות ולמחוק מטמון מראש שנוצר על ידי גרסאות ישנות ולא תואמות.
-
clientsClaim
boolean אופציונלי
ערך ברירת המחדל הוא: false
האם עובד שירות צריך להתחיל לשלוט בכל הלקוחות הקיימים ברגע שהוא מופעל.
-
directoryIndex
מחרוזת אופציונלי
אם בקשת ניווט לכתובת URL שמסתיימת ב-
/לא תואמת לכתובת URL ששמורה במטמון מראש, הערך הזה יצורף לכתובת ה-URL והמערכת תבדוק אם יש התאמה למטמון מראש. הערך הזה צריך להיות זהה לערך שמוגדר בשרת האינטרנט שלכם לאינדקס של הספרייה. -
disableDevLogs
boolean אופציונלי
ערך ברירת המחדל הוא: false
-
ignoreURLParametersMatching
RegExp[] אופציונלי
כל שמות הפרמטרים של החיפוש שתואמים לאחד מהביטויים הרגולריים במערך הזה יוסרו לפני החיפוש של התאמה למטמון. האפשרות הזו שימושית אם המשתמשים שלכם עשויים לבקש כתובות URL שמכילות, למשל, פרמטרים של כתובות URL שמשמשים למעקב אחרי מקור התנועה. אם לא מציינים ערך, ערך ברירת המחדל הוא
[/^utm_/, /^fbclid$/]. -
importScripts
string[] אופציונלי
רשימה של קובצי JavaScript שצריך להעביר אל
importScripts()בתוך קובץ ה-Service Worker שנוצר. האפשרות הזו שימושית כשרוצים לאפשר ל-Workbox ליצור את קובץ ה-service worker ברמה העליונה, אבל רוצים לכלול קוד נוסף, כמו מאזין לאירועי push. -
inlineWorkboxRuntime
boolean אופציונלי
ערך ברירת המחדל הוא: false
האם קוד זמן הריצה של ספריית Workbox צריך להיכלל ב-service worker ברמה העליונה, או לפצל אותו לקובץ נפרד שצריך לפרוס לצד ה-service worker. הפרדה של זמן הריצה מאפשרת למשתמשים לא להוריד מחדש את קוד Workbox בכל פעם שמשתנה service worker ברמה העליונה.
-
מצב
מחרוזת אופציונלי
ערך ברירת המחדל הוא: production
אם המדיניות מוגדרת כ-production, ייווצר חבילת service worker שעברה אופטימיזציה ולא כוללת מידע על ניפוי באגים. אם לא תגדירו ערך מפורש, המערכת תשתמש בערך
process.env.NODE_ENV, ואם לא תהיה ברירה, היא תשתמש בערך'production'. -
מחרוזת אופציונלי
ערך ברירת המחדל הוא: null
אם מציינים כתובת URL, כל בקשות הניווט לכתובות URL שלא נשמרו במטמון מראש יטופלו באמצעות קובץ ה-HTML בכתובת ה-URL שצוינה. חובה להעביר את כתובת ה-URL של מסמך HTML שמופיע במניפסט של הקבצים שמאוחסנים במטמון. השימוש ב-API הזה מיועד לתרחיש של אפליקציה עם דף יחיד, שבו רוצים שכל הניווטים ישתמשו ב-App Shell HTML משותף.
-
RegExp[] אופציונלי
מערך אופציונלי של ביטויים רגולריים שמגביל את כתובות ה-URL שעליהן חלה ההתנהגות המוגדרת של
navigateFallback. האפשרות הזו שימושית אם רק חלק מכתובות ה-URL של האתר שלכם צריכות להיחשב כחלק מאפליקציית דף יחיד. אם הגדרתם גם אתnavigateFallbackDenylistוגם אתnavigateFallbackAllowlist, הרשימה השחורה מקבלת עדיפות.הערה: יכול להיות שהביטויים הרגולריים האלה יוערכו מול כל כתובת URL של יעד במהלך ניווט. מומלץ להימנע משימוש בביטויי Regexp מורכבים, אחרת המשתמשים עלולים לחוות עיכובים בניווט באתר.
-
RegExp[] אופציונלי
מערך אופציונלי של ביטויים רגולריים שמגביל את כתובות ה-URL שעליהן חלה ההתנהגות המוגדרת של
navigateFallback. האפשרות הזו שימושית אם רק קבוצת משנה של כתובות ה-URL באתר שלכם צריכה להיחשב כחלק מאפליקציה של דף יחיד. אם גםnavigateFallbackDenylistוגםnavigateFallbackAllowlistמוגדרים, הרשימה השחורה מקבלת עדיפות.הערה: יכול להיות שהביטויים הרגולריים האלה יוערכו מול כל כתובת URL של יעד במהלך ניווט. מומלץ להימנע משימוש בביטויי Regexp מורכבים, אחרת המשתמשים עלולים לחוות עיכובים בניווט באתר.
-
boolean אופציונלי
ערך ברירת המחדל הוא: false
האם להפעיל טעינה מראש של ניווט ב-Service Worker שנוצר. אם המדיניות מוגדרת כ-True, צריך להשתמש גם ב-
runtimeCachingכדי להגדיר אסטרטגיית תגובה מתאימה שתתאים לבקשות ניווט ותשתמש בתגובה שנטענה מראש. -
offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions optional
ערך ברירת המחדל הוא: false
ההגדרה הזו קובעת אם לכלול תמיכה ב-Google Analytics אופליין. כש
true, השיחה אלinitialize()שלworkbox-google-analyticsתתווסף ל-service worker שנוצר. כשמגדיריםObject, האובייקט הזה מועבר לקריאהinitialize(), וכך אפשר להתאים אישית את ההתנהגות. -
runtimeCaching
RuntimeCaching[] אופציונלי
כשמשתמשים בכלי הבנייה של Workbox כדי ליצור את ה-service worker, אפשר לציין הגדרת מטמון אחת או יותר בזמן ריצה. ההגדרות האלה מתורגמות לקריאות של
workbox-routing.registerRouteבאמצעות ההתאמה והגדרת הטיפול שאתם מגדירים.למידע על כל האפשרויות, אפשר לעיין במסמכי התיעוד בנושא
workbox-build.RuntimeCaching. בדוגמה הבאה מוצגת הגדרה אופיינית, עם שני מסלולי ניתוב בזמן ריצה: -
skipWaiting
boolean אופציונלי
ערך ברירת המחדל הוא: false
האם להוסיף קריאה ללא תנאי ל-
skipWaiting()ל-service worker שנוצר. אםfalse, אז במקום זאת יתווסף מאזיןmessage, שיאפשר לדפי לקוח להפעיל אתskipWaiting()על ידי קריאה ל-postMessage({type: 'SKIP_WAITING'})ב-service worker שממתין. -
sourcemap
boolean אופציונלי
ערך ברירת המחדל הוא: true
האם ליצור מפת מקור לקובצי ה-service worker שנוצרו.
GenerateSWOptions
סוג
GetManifestOptions
GetManifestResult
מאפיינים
-
ספירה
number
-
manifestEntries
-
size
number
-
אזהרות
string[]
GlobPartial
מאפיינים
-
globFollow
boolean אופציונלי
ערך ברירת המחדל הוא: true
ההגדרה הזו קובעת אם הקישורים הסמליים יעקבו אחרי יצירת מניפסט של מטמון מראש. מידע נוסף מופיע בהגדרה של
followבמסמכי העזרה שלglob. -
globIgnores
string[] אופציונלי
ערך ברירת המחדל הוא: ["**\/node_modules\/**\/*"]
קבוצה של דפוסים שתואמים לקבצים שצריך להחריג תמיד כשיוצרים את מניפסט המטמון מראש. מידע נוסף מופיע בהגדרה של
ignoreבמסמכי העזרה שלglob. -
globPatterns
string[] אופציונלי
ערך ברירת המחדל הוא: ["**\/*.{js,wasm,css,html}"]
קבצים שתואמים לאחת מהתבניות האלה ייכללו במניפסט של המטמון המקדים. מידע נוסף זמין ב
globמאמר המבוא. -
templatedURLs
אובייקט אופציונלי
אם כתובת URL מעובדת על סמך לוגיקה בצד השרת, התוכן שלה עשוי להיות תלוי בכמה קבצים או בערך מחרוזת ייחודי אחר. המפתחות באובייקט הזה הם כתובות URL שעברו עיבוד בצד השרת. אם הערכים הם מערך של מחרוזות, הם יפורשו כתבניות
glob, והתוכן של כל הקבצים שתואמים לתבניות ישמש ליצירת גרסה ייחודית של כתובת ה-URL. אם משתמשים בו עם מחרוזת אחת, הוא יפורש כמידע ייחודי על גרסאות שיצרתם עבור כתובת URL נתונה.
InjectManifestOptions
סוג
InjectPartial
מאפיינים
-
injectionPoint
מחרוזת אופציונלי
ערך ברירת המחדל הוא: "self.__WB_MANIFEST"
המחרוזת שיש לחפש בתוך הקובץ
swSrc. אחרי שהקובץ יימצא, הוא יוחלף במניפסט של מטמון מראש שנוצר. -
swSrc
מחרוזת
הנתיב ושם הקובץ של קובץ ה-service worker שייקרא במהלך תהליך הבנייה, ביחס לספריית העבודה הנוכחית.
ManifestEntry
מאפיינים
-
תקינות
מחרוזת אופציונלי
-
גרסה
מחרוזת
-
כתובת אתר
מחרוזת
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
סוג
פונקציה
פרמטרים
-
manifestEntries
(ManifestEntry & object)[]
-
size
number
-
-
אוסף
לא ידוע אופציונלי
החזרות
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
מאפיינים
-
מניפסט
(ManifestEntry & object)[]
-
size
number
-
-
אזהרות
string[] אופציונלי
OptionalGlobDirectoryPartial
מאפיינים
-
globDirectory
מחרוזת אופציונלי
הספרייה המקומית שרוצים להשוות
globPatternsאליה. הנתיב הוא יחסי לספרייה הנוכחית.
RequiredGlobDirectoryPartial
מאפיינים
-
globDirectory
מחרוזת
הספרייה המקומית שרוצים להשוות
globPatternsאליה. הנתיב הוא יחסי לספרייה הנוכחית.
RequiredSWDestPartial
מאפיינים
-
swDest
מחרוזת
הנתיב ושם הקובץ של קובץ ה-Service Worker שייווצר בתהליך הבנייה, ביחס לספריית העבודה הנוכחית. הוא חייב להסתיים ב-'.js'.
RuntimeCaching
מאפיינים
-
handler
ההגדרה הזו קובעת איך המסלול בזמן הריצה ייצור תגובה. כדי להשתמש באחד מ
workbox-strategiesהמובנים, צריך לציין את השם שלו, כמו'NetworkFirst'. אפשרות אחרת היא להשתמש בפונקציית קריאה חוזרת (callback) שלworkbox-core.RouteHandlerעם לוגיקת תגובה מותאמת אישית. -
method
HTTPMethod optional
ערך ברירת המחדל הוא: "GET"
שיטת ה-HTTP שצריך להתאים לה. ערך ברירת המחדל של
'GET'בדרך כלל מספיק, אלא אם אתם צריכים להתאים במפורש'POST','PUT'או סוג אחר של בקשה. -
options
אובייקט אופציונלי
-
backgroundSync
אובייקט אופציונלי
הגדרת האפשרות הזו תוסיף מופע של
workbox-background-sync.BackgroundSyncPluginל-workbox-strategiesשהוגדר ב-handler.-
שם
מחרוזת
-
options
QueueOptions אופציונלי
-
-
broadcastUpdate
אובייקט אופציונלי
הגדרת האפשרות הזו תוסיף מופע של
workbox-broadcast-update.BroadcastUpdatePluginל-workbox-strategiesשהוגדר ב-handler.-
channelName
מחרוזת אופציונלי
-
options
-
-
cacheName
מחרוזת אופציונלי
אם מציינים ערך, הוא יוגדר כמאפיין
cacheNameשלworkbox-strategiesשהוגדר ב-handler. -
cacheableResponse
CacheableResponseOptions אופציונלי
הגדרה של האפשרות הזו תוסיף מופע של
workbox-cacheable-response.CacheableResponsePluginאלworkbox-strategiesשהוגדר ב-handler. -
תפוגה
ExpirationPluginOptions optional
הגדרה של האפשרות הזו תוסיף מופע של
workbox-expiration.ExpirationPluginאלworkbox-strategiesשהוגדר ב-handler. -
fetchOptions
RequestInit אופציונלי
הגדרת הערך הזה תעביר את הערך
fetchOptionsאלworkbox-strategiesשהוגדר ב-handler. -
matchOptions
CacheQueryOptions optional
הגדרת הערך הזה תעביר את הערך
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
boolean אופציונלי
אם מפעילים את האפשרות הזו, מוסף מופע של
workbox-range-requests.RangeRequestsPluginאלworkbox-strategiesשהוגדר ב-handler.
-
-
urlPattern
מחרוזת | RegExp | RouteMatchCallback
קריטריון ההתאמה הזה קובע אם המטפל שהוגדר ייצור תגובה לכל הבקשות שלא תואמות לאחת מכתובות האתרים ששמורים במטמון מראש. אם מוגדרים כמה נתיבים של
RuntimeCaching, הנתיב הראשון שערךurlPatternשלו תואם יהיה הנתיב שממנו תתקבל התגובה.הערך הזה ממופה ישירות לפרמטר הראשון שמועבר אל
workbox-routing.registerRoute. מומלץ להשתמש בפונקציהworkbox-core.RouteMatchCallbackכדי ליהנות מגמישות מקסימלית.
StrategyName
Enum
"CacheFirst"
"CacheOnly"
"NetworkFirst"
"NetworkOnly"
"StaleWhileRevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
מאפיינים
-
importScriptsViaChunks
string[] אופציונלי
שם אחד או יותר של חלקי webpack. התוכן של החלקים האלה ייכלל ב-service worker שנוצר, באמצעות קריאה ל-
importScripts(). -
swDest
מחרוזת אופציונלי
ערך ברירת המחדל הוא: "service-worker.js"
שם הנכס של קובץ ה-Service Worker שנוצר על ידי הפלאגין הזה.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
מאפיינים
-
compileSrc
boolean אופציונלי
ערך ברירת המחדל הוא: true
אם בוחרים באפשרות
true(ברירת המחדל), קובץswSrcיעבור קומפילציה על ידי webpack. כשמגדירים את הערךfalse, לא מתבצעת קומפילציה (ואי אפשר להשתמש ב-webpackCompilationPlugins). מגדירים את הערךfalseאם רוצים להוסיף את המניפסט, למשל, לקובץ JSON. -
swDest
מחרוזת אופציונלי
שם הנכס של קובץ ה-service worker שייווצר על ידי התוסף הזה. אם לא מציינים שם, השם יתבסס על השם של
swSrc. -
webpackCompilationPlugins
any[] אופציונלי
פלאגינים אופציונליים
webpackשישמשו להידור קובץ הקלטswSrc. בתוקף רק אםcompileSrcהואtrue.
WebpackPartial
מאפיינים
-
גושים
string[] אופציונלי
שם של מקטע אחד או יותר שקובצי הפלט התואמים שלו צריכים להיכלל במניפסט של קובצי ה-cache.
-
אל תכלול
(string | RegExp | function)[] optional
אחד או יותר מהמגדירים שמשמשים להחרגת נכסים ממניפסט המטמון המקדים. הפרשנות של הערך הזה מתבצעת לפי אותם כללים כמו של האפשרות הרגילה
excludeשלwebpack. אם לא מציינים ערך, ברירת המחדל היא[/\.map$/, /^manifest.*\.js$]. -
excludeChunks
string[] אופציונלי
שם של צ'אנק אחד או יותר שצריך להחריג את קובצי הפלט התואמים שלהם ממניפסט הקדם-שמירה במטמון.
-
כוללים
(string | RegExp | function)[] optional
אחד או יותר מהמפרטים שמשמשים להכללת נכסים במניפסט של מטמון מראש. הפרשנות של הערך הזה מתבצעת לפי אותם כללים כמו של האפשרות הרגילה
includeשלwebpack. -
מצב
מחרוזת אופציונלי
אם המדיניות מוגדרת כ-production, ייווצר חבילת service worker שעברה אופטימיזציה ולא כוללת מידע על ניפוי באגים. אם לא תגדירו ערך באופן מפורש, המערכת תשתמש בערך
modeשהוגדר בקומפילציה הנוכחיתwebpack.
Methods
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
הפעולה הזו מעתיקה קבוצה של ספריות זמן ריצה שמשמשות את Workbox לספרייה מקומית, שצריך לפרוס אותה לצד קובץ ה-service worker.
במקום לפרוס את העותקים המקומיים האלה, אפשר להשתמש ב-Workbox מכתובת ה-URL הרשמית של ה-CDN.
השיטה הזו מיועדת למפתחים שמשתמשים ב-workbox-build.injectManifest ומעדיפים לא להשתמש בעותקים של Workbox ב-CDN. מפתחים שמשתמשים ב-workbox-build.generateSW לא צריכים להפעיל את השיטה הזו באופן מפורש.
פרמטרים
-
destDirectory
מחרוזת
הנתיב לתיקיית האב שמתחתיה תיצור את התיקייה החדשה של הספריות.
החזרות
-
Promise<string>
השם של הספרייה החדשה שנוצרה.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
בשיטה הזו נוצרת רשימה של כתובות URL שצריך לשמור במטמון מראש, שנקראת 'מניפסט של שמירה במטמון מראש', על סמך האפשרויות שאתם מספקים.
הפונקציה מקבלת גם אפשרויות נוספות להגדרת ההתנהגות של Service Worker, כמו כללי runtimeCaching שבהם צריך להשתמש.
על סמך מניפסט השמירה במטמון מראש וההגדרה הנוספת, הוא כותב קובץ service worker מוכן לשימוש בדיסק במיקום 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,
): Promise<GetManifestResult>
השיטה הזו מחזירה רשימה של כתובות URL שצריך להוסיף למטמון מראש, שנקראת 'מניפסט של מטמון מראש', יחד עם פרטים על מספר הרשומות והגודל שלהן, על סמך האפשרויות שאתם מספקים.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, manifestEntries, size, warnings} = await getManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
});
פרמטרים
-
config
החזרות
-
Promise<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
פרמטרים
-
moduleName
מחרוזת
-
buildType
BuildType
החזרות
-
מחרוזת
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
בשיטה הזו נוצרת רשימה של כתובות URL שצריך לשמור במטמון מראש, שנקראת 'מניפסט של שמירה במטמון מראש', על סמך האפשרויות שאתם מספקים.
קובץ המניפסט מוזרק לקובץ swSrc, והמחרוזת של הפלייסהולדר injectionPoint קובעת את המיקום בקובץ שבו המניפסט צריך להיות.
קובץ ה-service worker הסופי, עם המניפסט שמוזרק, נכתב לדיסק בנתיב 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>