Das Modul workbox-build
wird in einen knotenbasierten Build-Prozess eingebunden und kann einen kompletten Service Worker generieren oder einfach eine Liste von Assets für den Vorab-Cache generieren, die in einem vorhandenen Service Worker verwendet werden können.
Die beiden Modi, die die meisten Entwickler verwenden, sind generateSW
und injectManifest
. Die Antworten auf die folgenden Fragen können Ihnen bei der Auswahl des richtigen Modus und der richtigen Konfiguration helfen.
Welcher Modus verwendet werden soll
generateSW
Im Modus generateSW
wird eine Service Worker-Datei erstellt, die über Konfigurationsoptionen angepasst wurde, und auf das Laufwerk geschrieben.
Verwendung von generateSW
- Sie möchten Dateien vorab im Cache speichern.
- Sie haben einfache Anforderungen an das Laufzeit-Caching.
Wann sollte generateSW
NICHT verwendet werden?
- Sie möchten andere Service Worker-Funktionen verwenden (z.B. Web Push).
- Sie möchten zusätzliche Skripts importieren oder zusätzliche Logik für benutzerdefinierte Caching-Strategien hinzufügen.
injectManifest
Im injectManifest
-Modus wird eine Liste mit URLs generiert, die vorab im Cache gespeichert werden sollen, und dieses Precache-Manifest einer vorhandenen Service Worker-Datei hinzugefügt. Ansonsten bleibt die Datei unverändert.
Verwendung von injectManifest
- Sie möchten mehr Kontrolle über Ihren Service Worker.
- Sie möchten Dateien vorab im Cache speichern.
- Du musst das Routing und die Strategien anpassen.
- Sie möchten Ihren Service Worker mit anderen Plattformfunktionen verwenden, z.B. Web Push.
Wann sollte injectManifest
NICHT verwendet werden?
- Sie möchten Ihrer Website am einfachsten einen Service Worker hinzufügen.
generateSW
Mobilitätsform
Sie können den generateSW
-Modus in einem knotenbasierten Build-Skript mit den gebräuchlichsten Konfigurationsoptionen verwenden, z. B.:
// 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.`);
});
Dadurch wird ein Service Worker mit Precaching-Einrichtung für alle von Ihrer Konfiguration ausgewählten Dateien und die bereitgestellten Laufzeit-Caching-Regeln generiert.
Eine vollständige Reihe an Konfigurationsoptionen finden Sie in der Referenzdokumentation.
injectManifest
Mobilitätsform
Sie können den injectManifest
-Modus in einem knotenbasierten Build-Skript mit den gebräuchlichsten Konfigurationsoptionen verwenden, z. B.:
// 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.`);
});
Dadurch wird ein Precache-Manifest erstellt, das auf den von Ihrer Konfiguration ausgewählten Dateien basiert, und in Ihre vorhandene Service Worker-Datei eingefügt.
Eine vollständige Reihe an Konfigurationsoptionen finden Sie in der Referenzdokumentation.
Zusätzliche Mobilitätsformen
Wir gehen davon aus, dass generateSW
oder injectManifest
den Anforderungen der meisten Entwickler gerecht wird. Es gibt jedoch noch einen anderen Modus, der von workbox-build
unterstützt wird und für bestimmte Anwendungsfälle geeignet sein könnte.
getManifest
Mobilitätsform
Das Konzept ähnelt dem injectManifest
-Modus, aber statt das Manifest zur Quelldienst-Worker-Datei hinzuzufügen, gibt es das Array der Manifest-Einträge zusammen mit Informationen über die Anzahl der Einträge und die Gesamtgröße zurück.
Sie können den injectManifest
-Modus in einem knotenbasierten Build-Skript mit den gebräuchlichsten Konfigurationsoptionen verwenden, z. B.:
// 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.
});
Eine vollständige Reihe an Konfigurationsoptionen finden Sie in der Referenzdokumentation.
Typen
BasePartial
Attribute
-
additionalManifestEntries
(String | ManifestEntry)[] optional
Eine Liste von Einträgen, die vorab im Cache gespeichert werden sollen, zusätzlich zu allen Einträgen, die im Rahmen der Build-Konfiguration generiert werden.
-
dontCacheBustURLsMatching
Regulärer Ausdruck optional
Für Assets, die damit übereinstimmen, wird angenommen, dass sie über ihre URL eindeutig versioniert sind, und vom normalen HTTP-Cache-Busting ausgenommen, das beim Füllen des Vorcaches erfolgt. Es ist zwar nicht erforderlich, aber wenn Ihr vorhandener Build-Prozess bereits einen
[hash]
-Wert in jeden Dateinamen einfügt, sollten Sie einen RegExp bereitstellen, der dies erkennt, weil dadurch die beim Precaching belegte Bandbreite reduziert wird. -
manifestTransforms
ManifestTransform[] optional
Eine oder mehrere Funktionen, die nacheinander auf das generierte Manifest angewendet werden. Wenn auch
modifyURLPrefix
oderdontCacheBustURLsMatching
angegeben sind, werden die entsprechenden Transformationen zuerst angewendet. -
maximumFileSizeToCacheInBytes
Nummer optional
Der Standardwert ist: 2097152
Mit diesem Wert kann die maximale Größe von Dateien bestimmt werden, die vorab im Cache gespeichert werden. Dadurch wird verhindert, dass Sie versehentlich sehr große Dateien im Cache speichern, die versehentlich mit einem Ihrer Muster übereinstimmen.
-
modifyURLPrefix
Objekt optional
Ein Objekt, das Stringpräfixe Ersatzstringwerten zuordnet. So können Sie beispielsweise ein Pfadpräfix aus einem Manifesteintrag entfernen oder hinzufügen, wenn Ihre Webhosting-Einrichtung nicht mit der Einrichtung Ihres lokalen Dateisystems übereinstimmt. Als Alternative mit mehr Flexibilität können Sie die Option
manifestTransforms
verwenden und eine Funktion bereitstellen, die die Einträge im Manifest mit der von Ihnen angegebenen Logik ändert.Beispiel:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Typ
Omit<GetManifestResult"manifestEntries"
> & Objekt
Attribute
-
filePaths
String[]
GeneratePartial
Attribute
-
babelPresetEnvTargets
string[] optional
Standardwert: ["chrome >= 56"]
Die Ziele, die beim Transpilieren des Service Worker-Bundles an
babel-preset-env
übergeben werden sollen. -
cacheId
String optional
Eine optionale ID, die Cache-Namen vorangestellt wird. Dies ist vor allem für die lokale Entwicklung nützlich, bei der mehrere Websites vom selben
http://localhost:port
-Ursprung bereitgestellt werden können. -
cleanupOutdatedCaches
Boolescher Wert optional
Standardwert ist: false
Gibt an, ob Workbox versuchen soll, Precaches zu identifizieren und zu löschen, die von älteren, inkompatiblen Versionen erstellt wurden.
-
clientsClaim
Boolescher Wert optional
Standardwert ist: false
Gibt an, ob der Service Worker mit der Steuerung vorhandener Clients beginnen soll, sobald er aktiviert wurde.
-
directoryIndex
String optional
Wenn eine Navigationsanfrage für eine URL mit der Endung
/
nicht mit einer vorab im Cache gespeicherten URL übereinstimmt, wird dieser Wert an die URL angehängt und auf eine Precache-Übereinstimmung geprüft. Dies sollte auf die Einstellung festgelegt werden, die Ihr Webserver für seinen Verzeichnisindex verwendet. -
disableDevLogs
Boolescher Wert optional
Standardwert ist: false
-
ignoreURLParametersMatching
Regulärer Ausdruck[] optional
Alle Suchparameternamen, die mit einem RegExp in diesem Array übereinstimmen, werden entfernt, bevor nach einer Precache-Übereinstimmung gesucht wird. Das ist nützlich, wenn Ihre Nutzer möglicherweise URLs anfordern, die z. B. URL-Parameter enthalten, mit denen die Quelle des Traffics erfasst wird. Wenn Sie nichts angeben, wird der Standardwert
[/^utm_/, /^fbclid$/]
verwendet. -
importScripts
string[] optional
Eine Liste der JavaScript-Dateien, die in der generierten Service-Worker-Datei an
importScripts()
übergeben werden sollen. Dies ist nützlich, wenn Sie möchten, dass Workbox Ihre Service Worker-Datei auf oberster Ebene erstellen soll, aber zusätzlichen Code enthalten soll, z. B. einen Push-Event-Listener. -
inlineWorkboxRuntime
Boolescher Wert optional
Standardwert ist: false
Gibt an, ob der Laufzeitcode für die Workbox-Bibliothek im Service Worker der obersten Ebene enthalten oder in eine separate Datei aufgeteilt werden soll, die zusammen mit dem Service Worker bereitgestellt werden muss. Wenn Sie die Laufzeit getrennt halten, müssen Nutzer den Workbox-Code nicht jedes Mal neu herunterladen, wenn sich der Service Worker auf oberster Ebene ändert.
-
Modus
String optional
Der Standardwert ist "production".
Wenn dieser Wert auf „production“ gesetzt ist, wird ein optimiertes Service Worker-Bundle erstellt, das Debugging-Informationen ausschließt. Wenn der Wert
process.env.NODE_ENV
nicht explizit konfiguriert ist, wird er verwendet. Andernfalls wird er auf'production'
zurückgesetzt. -
String optional
Standardwert: null
Wenn angegeben, werden alle Navigationsanfragen für URLs, die nicht vorab im Cache gespeichert sind, mit dem HTML-Code unter der angegebenen URL erfüllt. Sie müssen die URL eines HTML-Dokuments übergeben, das in Ihrem Precache-Manifest aufgeführt ist. Diese Methode sollte in einem Szenario für die Single-Page-Anwendung verwendet werden, in dem alle Navigationen allgemeinen App Shell-HTML-Code verwenden sollen.
-
Regulärer Ausdruck[] optional
Ein optionales Array regulärer Ausdrücke, das einschränkt, für welche URLs das konfigurierte Verhalten
navigateFallback
gilt. Das ist nützlich, wenn nur ein Teil der URLs deiner Website als Teil einer App mit nur einer Seite behandelt werden soll. Wenn sowohlnavigateFallbackDenylist
als auchnavigateFallbackAllowlist
konfiguriert sind, hat die Sperrliste Vorrang.Hinweis: Diese RegExps können während der Navigation mit jeder Ziel-URL ausgewertet werden. Vermeiden Sie die Verwendung komplexer RegExps, da Ihre Nutzer sonst möglicherweise Verzögerungen beim Navigieren auf Ihrer Website feststellen.
-
Regulärer Ausdruck[] optional
Ein optionales Array regulärer Ausdrücke, das einschränkt, für welche URLs das konfigurierte Verhalten
navigateFallback
gilt. Das ist nützlich, wenn nur ein Teil der URLs Ihrer Website als Teil einer App mit einer Seite behandelt werden soll. Wenn sowohlnavigateFallbackDenylist
als auchnavigateFallbackAllowlist
konfiguriert sind, hat die Sperrliste Vorrang.Hinweis: Diese RegExps können während der Navigation mit jeder Ziel-URL ausgewertet werden. Vermeiden Sie die Verwendung komplexer RegExps, da Ihre Nutzer sonst möglicherweise Verzögerungen beim Navigieren auf Ihrer Website feststellen.
-
Boolescher Wert optional
Standardwert ist: false
Gibt an, ob das Vorabladen der Navigation im generierten Service Worker aktiviert wird. Ist die Richtlinie auf „true“ gesetzt, müssen Sie außerdem
runtimeCaching
verwenden, um eine geeignete Antwortstrategie einzurichten, die Navigationsanfragen entspricht, und die vorab geladene Antwort zu verwenden. -
offlineGoogleAnalytics
Boolescher Wert | GoogleAnalyticsInitializeOptions optional
Standardwert ist: false
Legt fest, ob die Offline-Google Analytics-Version unterstützt werden soll. Bei
true
wird der Aufruf derinitialize()
vonworkbox-google-analytics
dem generierten Service Worker hinzugefügt. Ist das Objekt aufObject
gesetzt, wird es an deninitialize()
-Aufruf übergeben, sodass Sie das Verhalten anpassen können. -
runtimeCaching
RuntimeCaching[] optional
Wenn Sie die Build-Tools von Workbox zum Generieren des Service Workers verwenden, können Sie eine oder mehrere Konfigurationen für das Laufzeit-Caching angeben. Diese werden dann mithilfe der von Ihnen definierten Abgleichs- und Handler-Konfiguration in
workbox-routing.registerRoute
-Aufrufe übersetzt.Informationen zu allen Optionen finden Sie in der Dokumentation zu
workbox-build.RuntimeCaching
. Das folgende Beispiel zeigt eine typische Konfiguration mit zwei definierten Laufzeitrouten: -
skipWaiting
Boolescher Wert optional
Standardwert ist: false
Gibt an, ob dem generierten Service Worker ein unbedingter Aufruf von
skipWaiting()
hinzugefügt wird. Beifalse
wird stattdessen einmessage
-Listener hinzugefügt, mit dem ClientseitenskipWaiting()
durch Aufrufen vonpostMessage({type: 'SKIP_WAITING'})
für einen wartenden Service Worker auslösen können. -
Sourcemap
Boolescher Wert optional
Standardwert: true
Gibt an, ob eine Sourcemap für die generierten Service Worker-Dateien erstellt werden soll.
GenerateSWOptions
Typ
GetManifestOptions
GetManifestResult
Attribute
-
Anzahl
Zahl
-
manifestEntries
-
Größe
Zahl
-
Warnungen
String[]
GlobPartial
Attribute
-
globFollow
Boolescher Wert optional
Standardwert: true
Bestimmt, ob beim Generieren des Precache-Manifests Symlinks gefolgt wird. Weitere Informationen finden Sie in der Definition von
follow
in der Dokumentation zuglob
. -
globIgnores
string[] optional
Standardwert ist: ["**\/node_modules\/**\/*"]
Eine Reihe von Mustern, die Dateien abgleichen, die beim Generieren des Precache-Manifests immer ausgeschlossen werden. Weitere Informationen finden Sie in der Definition von
ignore
in der Dokumentation zuglob
. -
globPatterns
string[] optional
Standardwert: ["**\/*.{js,wasm,css,html}"]
Dateien, die einem dieser Muster entsprechen, werden in das Precache-Manifest aufgenommen. Weitere Informationen finden Sie in der
glob
-Primer. -
globStrict
Boolescher Wert optional
Standardwert: true
Bei „true“ schlägt der Build fehl, wenn ein Verzeichnis beim Generieren eines Precache-Manifests gelesen wird. Bei „false“ wird das problematische Verzeichnis übersprungen. Weitere Informationen finden Sie in der Definition von
strict
in der Dokumentation zuglob
. -
templatedURLs
Objekt optional
Wenn eine URL auf der Grundlage einer serverseitigen Logik gerendert wird, kann ihr Inhalt von mehreren Dateien oder einem anderen eindeutigen Stringwert abhängen. Die Schlüssel in diesem Objekt sind vom Server gerenderte URLs. Wenn die Werte ein Array von Strings sind, werden sie als
glob
-Muster interpretiert und der Inhalt aller Dateien, die mit den Mustern übereinstimmen, wird verwendet, um die URL eindeutig zu versionieren. Bei Verwendung mit einem einzelnen String wird dieser als eindeutige Versionsverwaltung interpretiert, die Sie für die jeweilige URL generiert haben.
InjectManifestOptions
Typ
InjectPartial
Attribute
-
injectionPoint
String optional
Standardwert ist: "self.__WB_MANIFEST"
Der String, der in der Datei
swSrc
gesucht werden soll. Sobald er gefunden wurde, wird er durch das generierte Precache-Manifest ersetzt. -
swSrc
String
Der Pfad und Dateiname der Service Worker-Datei, die während des Build-Prozesses gelesen wird, relativ zum aktuellen Arbeitsverzeichnis.
ManifestEntry
Attribute
-
Integrität
String optional
-
Revision
String
-
url
String
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Typ
Funktion
Parameter
-
manifestEntries
(ManifestEntry & Objekt)[]
-
Größe
Zahl
-
-
Kompilierung
Unbekannt optional
Rückgabe
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Attribute
-
Manifest
(ManifestEntry & Objekt)[]
-
Größe
Zahl
-
-
Warnungen
string[] optional
OptionalGlobDirectoryPartial
Attribute
-
globDirectory
String optional
Das lokale Verzeichnis, mit dem Sie
globPatterns
abgleichen möchten. Der Pfad bezieht sich auf das aktuelle Verzeichnis.
RequiredGlobDirectoryPartial
Attribute
-
globDirectory
String
Das lokale Verzeichnis, mit dem Sie
globPatterns
abgleichen möchten. Der Pfad bezieht sich auf das aktuelle Verzeichnis.
RequiredSWDestPartial
Attribute
-
swDest
String
Der Pfad und Dateiname der Service-Worker-Datei, die durch den Build-Prozess erstellt wird, relativ zum aktuellen Arbeitsverzeichnis. Sie muss auf „.js“ enden.
RuntimeCaching
Attribute
-
Handler
Damit wird festgelegt, wie die Laufzeitroute eine Antwort generiert. Wenn Sie eine der integrierten
workbox-strategies
verwenden möchten, geben Sie ihren Namen an, z. B.'NetworkFirst'
. Alternativ kann dies eineworkbox-core.RouteHandler
-Callback-Funktion mit benutzerdefinierter Antwortlogik sein. -
method
HTTPMethod optional
Der Standardwert ist: "GET"
Die HTTP-Methode für den Abgleich. Der Standardwert von
'GET'
ist normalerweise ausreichend, es sei denn, Sie müssen ausdrücklich eine Übereinstimmung mit'POST'
,'PUT'
oder einem anderen Anfragetyp ausführen. -
Optionen
Objekt optional
-
backgroundSync
Objekt optional
Wenn Sie dies konfigurieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-background-sync.BackgroundSyncPlugin
-Instanz hinzugefügt.-
name
String
-
Optionen
QueueOptions optional
-
-
broadcastUpdate
Objekt optional
Wenn Sie dies konfigurieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-broadcast-update.BroadcastUpdatePlugin
-Instanz hinzugefügt.-
channelName
String optional
-
Optionen
-
-
cacheName
String optional
Wenn angegeben, wird damit die Eigenschaft
cacheName
derworkbox-strategies
festgelegt, die inhandler
konfiguriert ist. -
cacheableResponse
CacheableResponseOptions optional
Wenn Sie dies konfigurieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-cacheable-response.CacheableResponsePlugin
-Instanz hinzugefügt. -
expiration
ExpirationPluginOptions optional
Wenn Sie dies konfigurieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-expiration.ExpirationPlugin
-Instanz hinzugefügt. -
fetchOptions
RequestInit optional
Wenn Sie dies konfigurieren, wird der Wert
fetchOptions
an die inhandler
konfigurierteworkbox-strategies
übergeben. -
matchOptions
CacheQueryOptions optional
Wenn Sie dies konfigurieren, wird der Wert
matchOptions
an die inhandler
konfigurierteworkbox-strategies
übergeben. -
networkTimeoutSeconds
Nummer optional
Wenn angegeben, wird damit die Eigenschaft
networkTimeoutSeconds
derworkbox-strategies
festgelegt, die inhandler
konfiguriert ist. Nur'NetworkFirst'
und'NetworkOnly'
unterstützennetworkTimeoutSeconds
. -
plugins
WorkboxPlugin[] optional
Wenn Sie dies konfigurieren, können ein oder mehrere Workbox-Plug-ins verwendet werden, die keine Verknüpfungsoptionen haben (z. B.
expiration
fürworkbox-expiration.ExpirationPlugin
). Die hier bereitgestellten Plug-ins werden dem inhandler
konfiguriertenworkbox-strategies
hinzugefügt. -
precacheFallback
Objekt optional
Wenn Sie dies konfigurieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-precaching.PrecacheFallbackPlugin
-Instanz hinzugefügt.-
fallbackURL
String
-
-
rangeRequests
Boolescher Wert optional
Wenn Sie diese Option aktivieren, wird dem in
handler
konfiguriertenworkbox-strategies
eineworkbox-range-requests.RangeRequestsPlugin
-Instanz hinzugefügt.
-
-
urlPattern
String | RegExp | RouteMatchCallback
Diese Abgleichskriterien bestimmen, ob der konfigurierte Handler eine Antwort für alle Anfragen generiert, die nicht mit einer der vorab im Cache gespeicherten URLs übereinstimmen. Wenn mehrere
RuntimeCaching
-Routen definiert sind, ist die erste Route miturlPattern
-Übereinstimmung die, die antwortet.Dieser Wert ist direkt dem ersten Parameter zugeordnet, der an
workbox-routing.registerRoute
übergeben wird. Für größtmögliche Flexibilität wird die Verwendung einerworkbox-core.RouteMatchCallback
-Funktion empfohlen.
StrategyName
Enum
"CacheFirst"
"NetworkFirst"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Attribute
-
importScriptsViaChunks
string[] optional
Ein oder mehrere Namen von Webpack-Chunks. Der Inhalt dieser Blöcke wird über einen Aufruf von
importScripts()
in den generierten Service Worker aufgenommen. -
swDest
String optional
Der Standardwert ist "service-worker.js"
Der Assetname der Service Worker-Datei, die von diesem Plug-in erstellt wurde.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Attribute
-
compileSrc
Boolescher Wert optional
Standardwert: true
Bei
true
(Standardeinstellung) wird die DateiswSrc
von Webpack kompiliert. Wennfalse
, wird nicht kompiliert (undwebpackCompilationPlugins
kann nicht verwendet werden). Legen Siefalse
fest, wenn Sie das Manifest einfügen möchten, z.B. in eine JSON-Datei. -
swDest
String optional
Der Asset-Name der Service Worker-Datei, die von diesem Plug-in erstellt wird. Wenn nicht angegeben, basiert der Name auf dem
swSrc
-Namen. -
webpackCompilationPlugins
Beliebig[] optional
Optionale
webpack
-Plug-ins, die beim Kompilieren derswSrc
-Eingabedatei verwendet werden. Nur gültig, wenncompileSrc
den Werttrue
hat.
WebpackPartial
Attribute
-
Chunks
string[] optional
Ein oder mehrere Chunk-Namen, deren entsprechende Ausgabedateien im Precache-Manifest enthalten sein sollen.
-
exclude
(String | RegExp | Funktion)[] optional
Ein oder mehrere Spezifizierer, mit denen Assets aus dem Precache-Manifest ausgeschlossen werden. Dies wird nach denselben Regeln wie die Standardoption
exclude
vonwebpack
interpretiert. Wenn nicht angegeben, wird der Standardwert[/\.map$/, /^manifest.*\.js$]
verwendet. -
excludeChunks
string[] optional
Ein oder mehrere Chunk-Namen, deren entsprechende Ausgabedateien aus dem Precache-Manifest ausgeschlossen werden sollen.
-
include
(String | RegExp | Funktion)[] optional
Mindestens ein Spezifizierer, mit dem Assets in das Precache-Manifest eingeschlossen werden. Dies wird nach denselben Regeln wie die Standardoption
include
vonwebpack
interpretiert. -
Modus
String optional
Wenn dieser Wert auf „production“ gesetzt ist, wird ein optimiertes Service Worker-Bundle erstellt, das Debugging-Informationen ausschließt. Wenn hier nicht explizit konfiguriert, wird der in der aktuellen
webpack
-Kompilierung konfigurierte Wertmode
verwendet.
Methoden
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Dadurch werden eine Reihe von Laufzeitbibliotheken, die von Workbox verwendet werden, in ein lokales Verzeichnis kopiert, das zusammen mit der Service Worker-Datei bereitgestellt werden sollte.
Alternativ zur Bereitstellung dieser lokalen Kopien können Sie Workbox über die offizielle CDN-URL verwenden.
Diese Methode wird Entwicklern genutzt, die workbox-build.injectManifest
verwenden und die CDN-Kopien von Workbox lieber nicht verwenden möchten. Entwickler, die workbox-build.generateSW
verwenden, müssen diese Methode nicht explizit aufrufen.
Parameter
-
destDirectory
String
Der Pfad zum übergeordneten Verzeichnis, in dem das neue Verzeichnis der Bibliotheken erstellt wird.
Rückgabe
-
Versprechen<string>
Der Name des neu erstellten Verzeichnisses.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
Mit dieser Methode wird anhand der von Ihnen angegebenen Optionen eine Liste von URLs erstellt, die vorab im Cache gespeichert werden sollen. Diese wird als „Precache-Manifest“ bezeichnet.
Außerdem sind zusätzliche Optionen verfügbar, die das Verhalten des Service Workers konfigurieren, wie z. B. alle zu verwendenden runtimeCaching
-Regeln.
Basierend auf dem Precache-Manifest und der zusätzlichen Konfiguration wird eine sofort einsatzbereite Service Worker-Datei auf das Laufwerk unter swDest
geschrieben.
// 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: '...',
});
Parameter
-
config
Rückgabe
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Diese Methode gibt basierend auf den von Ihnen angegebenen Optionen eine Liste von URLs zurück, die als „Precache-Manifest“ bezeichnet werden, die vorab im Cache gespeichert werden sollen. Außerdem werden Details zu der Anzahl der Einträge und ihrer Größe zurückgegeben.
// 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: ...,
});
Parameter
-
config
Rückgabe
-
Promise<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
Parameter
-
moduleName
String
-
buildType
BuildType
Rückgabe
-
String
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Mit dieser Methode wird anhand der von Ihnen angegebenen Optionen eine Liste von URLs erstellt, die vorab im Cache gespeichert werden sollen. Diese wird als „Precache-Manifest“ bezeichnet.
Das Manifest wird in die Datei swSrc
eingeschleust und der Platzhalterstring injectionPoint
bestimmt, an welcher Stelle in der Datei das Manifest eingefügt werden soll.
Die endgültige Service Worker-Datei mit dem eingefügten Manifest wird unter swDest
auf das Laufwerk geschrieben.
Diese Methode kompiliert oder bündelt die Datei swSrc
nicht, sondern übernimmt nur die Injektion des Manifests.
// 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: '...',
});
Parameter
-
config
Rückgabe
-
Promise<BuildResult>