De workbox-build
module kan worden geïntegreerd in een op knooppunten gebaseerd bouwproces en kan een volledige servicemedewerker genereren, of gewoon een lijst met assets genereren die vooraf in de cache kunnen worden geplaatst en die binnen een bestaande servicemedewerker kunnen worden gebruikt.
De twee modi die de meeste ontwikkelaars zullen gebruiken zijn generateSW
en injectManifest
. De antwoorden op de volgende vragen kunnen u helpen bij het kiezen van de juiste modus en configuratie.
Welke modus te gebruiken
generateSW
De generateSW
modus creëert een servicemedewerkerbestand voor u, aangepast via configuratie-opties, en schrijft dit naar schijf.
Wanneer moet u generateSW
gebruiken?
- U wilt bestanden vooraf in de cache plaatsen.
- U heeft eenvoudige runtime-cachebehoeften.
Wanneer u generateSW
NIET moet gebruiken
- U wilt andere Service Worker-functies gebruiken (bijvoorbeeld Web Push ).
- U wilt extra scripts importeren of extra logica toevoegen voor aangepaste cachingstrategieën.
injectManifest
De injectManifest
modus genereert een lijst met URL's die vooraf in de cache moeten worden geplaatst, en voegt dat precache-manifest toe aan een bestaand servicemedewerkerbestand. Anders blijft het bestand ongewijzigd.
Wanneer injectManifest
gebruiken?
- U wilt meer controle over uw servicemedewerker.
- U wilt bestanden vooraf in de cache plaatsen.
- U moet de routing en strategieën aanpassen.
- U wilt uw servicemedewerker gebruiken met andere platformfuncties (bijvoorbeeld Web Push ).
Wanneer mag u injectManifest
NIET gebruiken?
- U wilt de eenvoudigste manier om een servicemedewerker aan uw site toe te voegen.
generateSW
modus
U kunt de generateSW
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.`);
});
Hierdoor wordt een servicemedewerker gegenereerd met precaching-instellingen voor alle bestanden die door uw configuratie worden opgehaald, en met de meegeleverde runtime-cacheregels.
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
injectManifest
-modus
U kunt de injectManifest
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.`);
});
Hiermee wordt een precache-manifest gemaakt op basis van de bestanden die door uw configuratie zijn opgehaald en in uw bestaande servicemedewerkerbestand geïnjecteerd.
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
Extra modi
We verwachten dat generateSW
of injectManifest
aan de behoeften van de meeste ontwikkelaars zal voldoen. Er is echter nog een andere modus die wordt ondersteund door workbox-build
en die geschikt kan zijn voor bepaalde gebruiksscenario's.
getManifest
modus
Dit is conceptueel vergelijkbaar met de injectManifest
modus, maar in plaats van het manifest toe te voegen aan het werkbestand van de bronservice, retourneert het de reeks manifestvermeldingen, samen met informatie over het aantal vermeldingen en de totale grootte.
U kunt de injectManifest
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.
});
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
Soorten
BasePartial
Eigenschappen
- aanvullendeManifestEntries
(string | ManifestEntry )[] optioneel
Een lijst met vermeldingen die vooraf in de cache moeten worden opgeslagen, naast eventuele vermeldingen die worden gegenereerd als onderdeel van de buildconfiguratie.
- dontCacheBustURLsMatching
RegExp optioneel
Van assets die hieraan voldoen, wordt aangenomen dat ze een unieke versie hebben via hun URL, en zijn uitgesloten van de normale HTTP-cache-busting die wordt uitgevoerd bij het vullen van de pre-cache. Hoewel dit niet vereist is, wordt het aanbevolen dat als uw bestaande bouwproces al een
[hash]
-waarde in elke bestandsnaam invoegt, u een RegExp opgeeft die dit zal detecteren, omdat dit de bandbreedte die wordt verbruikt bij precaching zal verminderen. - manifestTransformeert
ManifestTransform [] optioneel
Een of meer functies die opeenvolgend worden toegepast op het gegenereerde manifest. Als
modifyURLPrefix
ofdontCacheBustURLsMatching
ook zijn opgegeven, worden de bijbehorende transformaties eerst toegepast. - maximumFileSizeToCacheInBytes
nummer optioneel
Standaardwaarde is: 2097152
Deze waarde kan worden gebruikt om de maximale grootte te bepalen van bestanden die vooraf in de cache worden opgeslagen. Dit voorkomt dat u per ongeluk zeer grote bestanden vooraf in de cache plaatst die mogelijk per ongeluk overeenkomen met een van uw patronen.
- wijzigURLPrefix
object optioneel
Een objecttoewijzingsreeks wordt voorafgegaan door vervangende tekenreekswaarden. Dit kan worden gebruikt om bijvoorbeeld een padvoorvoegsel uit een manifestitem te verwijderen of toe te voegen als uw webhostinginstellingen niet overeenkomen met uw lokale bestandssysteeminstellingen. Als alternatief met meer flexibiliteit kunt u de optie
manifestTransforms
gebruiken en een functie opgeven die de vermeldingen in het manifest wijzigt met behulp van de logica die u opgeeft.Voorbeeldgebruik:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Type
Weglaten < GetManifestResult "manifestEntries"
> & bezwaar maken
Eigenschappen
- bestandspaden
snaar[]
GeneratePartial
Eigenschappen
- babelPresetEnvTargets
tekenreeks[] optioneel
Standaardwaarde is: ["chroom >= 56"]
De doelen die moeten worden doorgegeven aan
babel-preset-env
bij het transpileren van de servicemedewerkerbundel. - cacheId
tekenreeks optioneel
Een optionele ID die moet worden toegevoegd aan de cachenamen. Dit is vooral handig voor lokale ontwikkeling waarbij meerdere sites kunnen worden bediend vanaf dezelfde
http://localhost:port
oorsprong. - opruimenVerouderde Caches
Booleaans optioneel
Standaardwaarde is: false
Of Workbox al dan niet moet proberen precaches te identificeren en te verwijderen die zijn gemaakt door oudere, incompatibele versies.
- klantenClaim
Booleaans optioneel
Standaardwaarde is: false
Of de servicemedewerker al dan niet bestaande clients moet gaan beheren zodra deze worden geactiveerd.
- directoryIndex
tekenreeks optioneel
Als een navigatieverzoek voor een URL die eindigt op
/
niet overeenkomt met een vooraf in de cache opgeslagen URL, wordt deze waarde aan de URL toegevoegd en wordt deze gecontroleerd op een vooraf in de cache opgeslagen URL. Dit moet worden ingesteld op wat uw webserver gebruikt voor de directory-index. - schakelDevLogs uit
Booleaans optioneel
Standaardwaarde is: false
- negeerURLParametersOvereenkomend
RegExp[] optioneel
Alle namen van zoekparameters die overeenkomen met een van de RegExp in deze array worden verwijderd voordat wordt gezocht naar een precache-overeenkomst. Dit is handig als uw gebruikers URL's kunnen opvragen die bijvoorbeeld URL-parameters bevatten die worden gebruikt om de bron van het verkeer bij te houden. Indien niet opgegeven, is de standaardwaarde
[/^utm_/, /^fbclid$/]
. - importScripts
tekenreeks[] optioneel
Een lijst met JavaScript-bestanden die moeten worden doorgegeven aan
importScripts()
in het gegenereerde servicewerkerbestand. Dit is handig als u Workbox uw servicewerkerbestand op het hoogste niveau wilt laten maken, maar extra code wilt toevoegen, zoals een push-gebeurtenislistener. - inlineWorkboxRuntime
Booleaans optioneel
Standaardwaarde is: false
Of de runtimecode voor de Workbox-bibliotheek moet worden opgenomen in de servicemedewerker op het hoogste niveau, of moet worden opgesplitst in een afzonderlijk bestand dat naast de servicemedewerker moet worden geïmplementeerd. Door de runtime gescheiden te houden, hoeven gebruikers de Workbox-code niet telkens opnieuw te downloaden wanneer uw servicemedewerker op het hoogste niveau verandert.
- modus
tekenreeks optioneel
Standaardwaarde is: "productie"
Indien ingesteld op 'productie', wordt er een geoptimaliseerde servicemedewerkerbundel geproduceerd die foutopsporingsinformatie uitsluit. Als dit hier niet expliciet wordt geconfigureerd, wordt de waarde
process.env.NODE_ENV
gebruikt, en als dat niet lukt, valt deze terug naar'production'
. tekenreeks optioneel
Standaardwaarde is: nul
Indien opgegeven, worden alle navigatieverzoeken voor URL's die niet vooraf in de cache zijn geplaatst, uitgevoerd met de HTML op de opgegeven URL. U moet de URL doorgeven van een HTML-document dat in uw precache-manifest staat vermeld. Dit is bedoeld voor gebruik in een Single Page App-scenario, waarin u wilt dat alle navigatie de algemene App Shell HTML gebruikt.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallback
gedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site moet worden behandeld als onderdeel van een Single Page App . Als zowelnavigateFallbackDenylist
alsnavigateFallbackAllowlist
zijn geconfigureerd, heeft de weigeringslijst voorrang.Opmerking : deze RegExps kunnen tijdens een navigatie worden geëvalueerd aan de hand van elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ondervinden bij het navigeren op uw site.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallback
gedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site moet worden behandeld als onderdeel van een Single Page App . Als zowelnavigateFallbackDenylist
alsnavigateFallbackAllowlist
zijn geconfigureerd, heeft de weigeringslijst voorrang.Opmerking : deze RegExps kunnen tijdens een navigatie worden geëvalueerd aan de hand van elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ondervinden bij het navigeren op uw site.
Booleaans optioneel
Standaardwaarde is: false
Of navigatievoorladen wel of niet moet worden ingeschakeld in de gegenereerde servicemedewerker. Wanneer ingesteld op true, moet u ook
runtimeCaching
gebruiken om een geschikte responsstrategie in te stellen die overeenkomt met navigatieverzoeken, en gebruik maken van het vooraf geladen antwoord.- offlineGoogleAnalytics
booleaans | GoogleAnalyticsInitializeOptions optioneel
Standaardwaarde is: false
Bepaalt of ondersteuning voor offline Google Analytics wel of niet moet worden opgenomen. Wanneer
true
, wordt de aanroep vaninitialize()
vanworkbox-google-analytics
toegevoegd aan de door u gegenereerde servicemedewerker. Wanneer ingesteld op eenObject
, wordt dat object doorgegeven aan deinitialize()
-aanroep, waardoor u het gedrag kunt aanpassen. - runtimeCaching
RuntimeCaching [] optioneel
Wanneer u de buildtools van Workbox gebruikt om uw servicemedewerker te genereren, kunt u een of meer runtime-cachingconfiguraties opgeven. Deze worden vervolgens vertaald naar
workbox-routing.registerRoute
-aanroepen met behulp van de match- en handler-configuratie die u definieert.Zie de
workbox-build.RuntimeCaching
-documentatie voor alle opties. Het onderstaande voorbeeld toont een typische configuratie, waarbij twee runtime-routes zijn gedefinieerd: - overslaanWachten
Booleaans optioneel
Standaardwaarde is: false
Of er een onvoorwaardelijke aanroep van
skipWaiting()
moet worden toegevoegd aan de gegenereerde servicemedewerker. Alsfalse
, wordt in plaats daarvan eenmessage
toegevoegd, waardoor clientpagina'sskipWaiting()
kunnen activeren doorpostMessage({type: 'SKIP_WAITING'})
aan te roepen op een wachtende servicemedewerker. - bronkaart
Booleaans optioneel
Standaardwaarde is: waar
Of er een brontoewijzing moet worden gemaakt voor de gegenereerde servicemedewerkerbestanden.
GenerateSWOptions
Type
GetManifestOptions
GetManifestResult
Eigenschappen
- graaf
nummer
- manifestInvoeren
- maat
nummer
- waarschuwingen
snaar[]
GlobPartial
Eigenschappen
- globVolgen
Booleaans optioneel
Standaardwaarde is: waar
Bepaalt of symlinks al dan niet worden gevolgd bij het genereren van het precache-manifest. Zie de definitie van
follow
in deglob
documentatie voor meer informatie. - globNegeert
tekenreeks[] optioneel
Standaardwaarde is: ["**\/node_modules\/**\/*"]
Een set patronen die overeenkomen met bestanden die altijd moeten worden uitgesloten bij het genereren van het precache-manifest. Zie de definitie van
ignore
in deglob
documentatie voor meer informatie. - globPatronen
tekenreeks[] optioneel
Standaardwaarde is: ["**\/*.{js,wasm,css,html}"]
Bestanden die overeenkomen met een van deze patronen worden opgenomen in het precache-manifest. Zie de
glob
voor meer informatie. - globStrikt
Booleaans optioneel
Standaardwaarde is: waar
Als dit waar is, zal een fout bij het lezen van een directory bij het genereren van een precache-manifest ervoor zorgen dat de build mislukt. Als dit niet waar is, wordt de problematische directory overgeslagen. Zie de definitie van
strict
in deglob
documentatie voor meer informatie. - templatedURL's
object optioneel
Als een URL wordt weergegeven op basis van logica op de server, kan de inhoud ervan afhankelijk zijn van meerdere bestanden of van een andere unieke tekenreekswaarde. De sleutels in dit object zijn door de server weergegeven URL's. Als de waarden een array van tekenreeksen zijn, worden ze geïnterpreteerd als
glob
patronen en wordt de inhoud van bestanden die overeenkomen met de patronen gebruikt om de URL op unieke wijze te versieleren. Indien gebruikt met een enkele tekenreeks, wordt deze geïnterpreteerd als unieke versiegegevens die u voor een bepaalde URL heeft gegenereerd.
InjectManifestOptions
Type
InjectPartial
Eigenschappen
- injectiepunt
tekenreeks optioneel
Standaardwaarde is: "self.__WB_MANIFEST"
De tekenreeks die in het
swSrc
bestand moet worden gevonden. Eenmaal gevonden, wordt het vervangen door het gegenereerde precache-manifest. - swSrc
snaar
Het pad en de bestandsnaam van het servicewerknemerbestand dat tijdens het bouwproces wordt gelezen, relatief ten opzichte van de huidige werkmap.
ManifestEntry
Eigenschappen
- integriteit
tekenreeks optioneel
- herziening
snaar
- URL
snaar
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Type
functie
Parameters
- manifestInvoeren
( ManifestEntry & object)[]
- maat
nummer
- compilatie
onbekend optioneel
Geeft terug
Belofte< ManifestTransformResult > | ManifestTransformResultaat
ManifestTransformResult
Eigenschappen
- manifest
( ManifestEntry & object)[]
- maat
nummer
- waarschuwingen
tekenreeks[] optioneel
OptionalGlobDirectoryPartial
Eigenschappen
- globDirectory
tekenreeks optioneel
De lokale map waarmee u
globPatterns
wilt matchen. Het pad is relatief ten opzichte van de huidige map.
RequiredGlobDirectoryPartial
Eigenschappen
- globDirectory
snaar
De lokale map waarmee u
globPatterns
wilt matchen. Het pad is relatief ten opzichte van de huidige map.
RequiredSWDestPartial
Eigenschappen
- swDest
snaar
Het pad en de bestandsnaam van het servicewerknemerbestand dat door het bouwproces wordt gemaakt, relatief ten opzichte van de huidige werkmap. Het moet eindigen op '.js'.
RuntimeCaching
Eigenschappen
- begeleider
Dit bepaalt hoe de runtime-route een antwoord genereert. Om een van de ingebouwde
workbox-strategies
te gebruiken, geeft u de naam ervan op, bijvoorbeeld'NetworkFirst'
. Als alternatief kan dit een callback-functieworkbox-core.RouteHandler
zijn met aangepaste antwoordlogica. - methode
HTTPMethode optioneel
Standaardwaarde is: "GET"
De HTTP-methode waarmee moet worden vergeleken. De standaardwaarde
'GET'
is normaal gesproken voldoende, tenzij u expliciet'POST'
,'PUT'
of een ander type verzoek moet matchen. - opties
object optioneel
- achtergrondSync
object optioneel
Als u dit configureert, wordt een
workbox-background-sync.BackgroundSyncPlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
.- naam
snaar
- opties
Wachtrijopties optioneel
- uitzendingUpdate
object optioneel
Als u dit configureert, wordt een
workbox-broadcast-update.BroadcastUpdatePlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
.- kanaal naam
tekenreeks optioneel
- opties
- cacheNaam
tekenreeks optioneel
Indien opgegeven, wordt hiermee de eigenschap
cacheName
van deworkbox-strategies
ingesteld inhandler
. - cachebaar antwoord
CacheableResponseOptions optioneel
Als u dit configureert, wordt een
workbox-cacheable-response.CacheableResponsePlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - vervaldatum
ExpirationPluginOptions optioneel
Als u dit configureert, wordt een
workbox-expiration.ExpirationPlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - haal Opties op
RequestInit optioneel
Als u dit configureert, wordt de waarde
fetchOptions
doorgegeven aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - matchOptions
CacheQueryOptions optioneel
Als u dit configureert, wordt de
matchOptions
waarde doorgegeven aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - netwerkTimeoutSeconden
nummer optioneel
Indien opgegeven, wordt hiermee de eigenschap
networkTimeoutSeconds
ingesteld van deworkbox-strategies
die zijn geconfigureerd inhandler
. Houd er rekening mee dat alleen'NetworkFirst'
en'NetworkOnly'
networkTimeoutSeconds
ondersteunen. - plug-ins
WorkboxPlugin [] optioneel
Als u dit configureert, kunt u een of meer Workbox-plug-ins gebruiken die geen "snelkoppelingsopties" hebben (zoals
expiration
voorworkbox-expiration.ExpirationPlugin
). De hier geleverde plug-ins worden toegevoegd aan deworkbox-strategies
die inhandler
zijn geconfigureerd. - precacheFallback
object optioneel
Als u dit configureert, wordt een
workbox-precaching.PrecacheFallbackPlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
.- fallbackURL
snaar
- bereikAanvragen
Booleaans optioneel
Als u dit inschakelt, wordt een
workbox-range-requests.RangeRequestsPlugin
-instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
.
- urlPatroon
tekenreeks | RegExp | RouteMatchTerugbellen
Dit overeenkomstcriterium bepaalt of de geconfigureerde handler een antwoord genereert voor verzoeken die niet overeenkomen met een van de vooraf in de cache opgeslagen URL's. Als er meerdere
RuntimeCaching
routes zijn gedefinieerd, zal de eerste waarvanurlPattern
overeenkomt, degene zijn die reageert.Deze waarde wordt rechtstreeks toegewezen aan de eerste parameter die wordt doorgegeven aan
workbox-routing.registerRoute
. Het wordt aanbevolen om eenworkbox-core.RouteMatchCallback
-functie te gebruiken voor de grootste flexibiliteit.
StrategyName
Enum
"CacheEerste" "Alleen cache" "Netwerk eerst" "Alleen netwerk" "Verouderd terwijl opnieuw valideren"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Eigenschappen
- importScriptsViaChunks
tekenreeks[] optioneel
Een of meer namen van webpack-chunks. De inhoud van deze chunks wordt opgenomen in de gegenereerde service worker, via een aanroep van
importScripts()
. - swDest
tekenreeks optioneel
Standaardwaarde is: "service-worker.js"
De assetnaam van het servicemedewerkerbestand dat door deze plug-in is gemaakt.
WebpackInjectManifestOptions
Type
WebpackInjectManifestPartial
Eigenschappen
- compileSrc
Booleaans optioneel
Standaardwaarde is: waar
Indien
true
(de standaardinstelling), wordt hetswSrc
bestand gecompileerd door webpack. Wanneerfalse
, zal er geen compilatie plaatsvinden (en kunnenwebpackCompilationPlugins
niet worden gebruikt.) Stel deze in opfalse
als u het manifest in bijvoorbeeld een JSON-bestand wilt injecteren. - swDest
tekenreeks optioneel
De assetnaam van het servicemedewerkerbestand dat door deze plug-in wordt gemaakt. Als u dit weglaat, wordt de naam gebaseerd op de
swSrc
-naam. - webpackCompilationPlugins
elke [] optioneel
Optionele
webpack
plug-ins die worden gebruikt bij het compileren van hetswSrc
invoerbestand. Alleen geldig alscompileSrc
true
is.
WebpackPartial
Eigenschappen
- brokken
tekenreeks[] optioneel
Een of meer segmentnamen waarvan de overeenkomstige uitvoerbestanden moeten worden opgenomen in het precache-manifest.
- uitsluiten
(string | RegExp | functie)[] optioneel
Een of meer specificaties die worden gebruikt om assets uit te sluiten van het precache-manifest. Dit wordt geïnterpreteerd volgens dezelfde regels als de standaard
exclude
vanwebpack
. Indien niet opgegeven, is de standaardwaarde[/\.map$/, /^manifest.*\.js$]
. - sluitChunks uit
tekenreeks[] optioneel
Een of meer segmentnamen waarvan de overeenkomstige uitvoerbestanden moeten worden uitgesloten van het precache-manifest.
- erbij betrekken
(string | RegExp | functie)[] optioneel
Een of meer specificaties die worden gebruikt om assets op te nemen in het precache-manifest. Dit wordt geïnterpreteerd volgens dezelfde regels als de standaard
include
optie vanwebpack
. - modus
tekenreeks optioneel
Indien ingesteld op 'productie', wordt er een geoptimaliseerde servicemedewerkerbundel geproduceerd die foutopsporingsinformatie uitsluit. Als dit hier niet expliciet wordt geconfigureerd, wordt de
mode
gebruikt die is geconfigureerd in de huidigewebpack
compilatie.
Methoden
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Hiermee kopieert u een reeks runtimebibliotheken die door Workbox worden gebruikt naar een lokale map, die naast uw servicewerknemersbestand moet worden geïmplementeerd.
Als alternatief voor het implementeren van deze lokale kopieën kunt u in plaats daarvan Workbox gebruiken via de officiële CDN-URL.
Deze methode wordt aangeboden ten behoeve van ontwikkelaars die workbox-build.injectManifest
gebruiken en die liever niet de CDN-kopieën van Workbox gebruiken. Ontwikkelaars workbox-build.generateSW
gebruiken, hoeven deze methode niet expliciet aan te roepen.
Parameters
- destDirectory
snaar
Het pad naar de bovenliggende map waaronder de nieuwe map met bibliotheken wordt gemaakt.
Geeft terug
Beloof<tekenreeks>
De naam van de nieuw gemaakte map.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
Met deze methode wordt een lijst met URL's gemaakt die vooraf in de cache moeten worden geplaatst, ook wel een 'precache-manifest' genoemd, op basis van de opties die u opgeeft.
Het bevat ook extra opties die het gedrag van de servicemedewerker configureren, zoals alle runtimeCaching
regels die hij zou moeten gebruiken.
Op basis van het precache-manifest en de aanvullende configuratie schrijft het een kant-en-klaar servicewerkerbestand naar schijf op 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: '...',
});
Parameters
- configuratie
Geeft terug
Belofte <BouwResultaat>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Deze methode retourneert een lijst met URL's die u wilt precache, ook wel een 'precache-manifest' genoemd, samen met details over het aantal vermeldingen en hun grootte, op basis van de opties die u opgeeft.
// 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: ...,
});
Parameters
- configuratie
Geeft terug
Beloof < GetManifestResult >
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
Parameters
- module naam
snaar
- bouwtype
Bouwtype
Geeft terug
snaar
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Met deze methode wordt een lijst met URL's gemaakt die vooraf in de cache moeten worden geplaatst, ook wel een 'precache-manifest' genoemd, op basis van de opties die u opgeeft.
Het manifest wordt in het swSrc
bestand geïnjecteerd en de tijdelijke aanduiding string injectionPoint
bepaalt waar in het bestand het manifest moet komen.
Het laatste servicemedewerkerbestand, met het geïnjecteerde manifest, wordt naar schijf geschreven op swDest
.
Met deze methode wordt uw swSrc
-bestand niet gecompileerd of gebundeld; het zorgt alleen voor het injecteren van het manifest.
// 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: '...',
});
Parameters
- configuratie
Geeft terug
Belofte <BouwResultaat>
De workbox-build
module kan worden geïntegreerd in een op knooppunten gebaseerd bouwproces en kan een volledige servicemedewerker genereren, of gewoon een lijst met assets genereren die vooraf in de cache kunnen worden geplaatst en die binnen een bestaande servicemedewerker kunnen worden gebruikt.
De twee modi die de meeste ontwikkelaars zullen gebruiken zijn generateSW
en injectManifest
. De antwoorden op de volgende vragen kunnen u helpen bij het kiezen van de juiste modus en configuratie.
Welke modus te gebruiken
generateSW
De generateSW
modus creëert een servicemedewerkerbestand voor u, aangepast via configuratie-opties, en schrijft dit naar schijf.
Wanneer moet u generateSW
gebruiken?
- U wilt bestanden vooraf in de cache plaatsen.
- U heeft eenvoudige runtime-cachebehoeften.
Wanneer u generateSW
NIET moet gebruiken
- U wilt andere Service Worker-functies gebruiken (bijvoorbeeld Web Push ).
- U wilt extra scripts importeren of extra logica toevoegen voor aangepaste cachingstrategieën.
injectManifest
De injectManifest
modus genereert een lijst met URL's die vooraf in de cache moeten worden geplaatst, en voegt dat precache-manifest toe aan een bestaand servicemedewerkerbestand. Anders blijft het bestand ongewijzigd.
Wanneer injectManifest
gebruiken?
- U wilt meer controle over uw servicemedewerker.
- U wilt bestanden vooraf in de cache plaatsen.
- U moet de routing en strategieën aanpassen.
- U wilt uw servicemedewerker gebruiken met andere platformfuncties (bijvoorbeeld Web Push ).
Wanneer mag u injectManifest
NIET gebruiken?
- U wilt de eenvoudigste manier om een servicemedewerker aan uw site toe te voegen.
generateSW
modus
U kunt de generateSW
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.`);
});
Hierdoor wordt een servicemedewerker gegenereerd met precaching-instellingen voor alle bestanden die door uw configuratie worden opgehaald, en met de meegeleverde runtime-cacheregels.
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
injectManifest
-modus
U kunt de injectManifest
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.`);
});
Hiermee wordt een precache-manifest gemaakt op basis van de bestanden die door uw configuratie zijn opgehaald en in uw bestaande servicemedewerkerbestand geïnjecteerd.
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
Extra modi
We verwachten dat generateSW
of injectManifest
aan de behoeften van de meeste ontwikkelaars zal voldoen. Er is echter nog een andere modus die wordt ondersteund door workbox-build
en die geschikt kan zijn voor bepaalde gebruiksscenario's.
getManifest
modus
Dit is conceptueel vergelijkbaar met de injectManifest
modus, maar in plaats van het manifest toe te voegen aan het werkbestand van de bronservice, retourneert het de reeks manifestitems, samen met informatie over het aantal vermeldingen en de totale grootte.
U kunt de injectManifest
modus gebruiken binnen een op knooppunten gebaseerd build-script, met behulp van de meest gebruikelijke configuratie-opties , zoals:
// 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.
});
Een volledige set configuratieopties vindt u in de referentiedocumentatie .
Soorten
BasePartial
Eigenschappen
- aanvullendeManifestEntries
(string | ManifestEntry )[] optioneel
Een lijst met vermeldingen die vooraf in de cache moeten worden opgeslagen, naast eventuele vermeldingen die worden gegenereerd als onderdeel van de buildconfiguratie.
- dontCacheBustURLsMatching
RegExp optioneel
Van assets die hieraan voldoen, wordt aangenomen dat ze een unieke versie hebben via hun URL, en zijn uitgesloten van de normale HTTP-cache-busting die wordt uitgevoerd bij het vullen van de pre-cache. Hoewel dit niet vereist is, wordt het aanbevolen dat als uw bestaande bouwproces al een
[hash]
-waarde in elke bestandsnaam invoegt, u een RegExp opgeeft die dit zal detecteren, omdat dit de bandbreedte die wordt verbruikt bij precaching zal verminderen. - manifestTransformeert
ManifestTransform [] optioneel
Een of meer functies die opeenvolgend worden toegepast op het gegenereerde manifest. Als
modifyURLPrefix
ofdontCacheBustURLsMatching
ook zijn opgegeven, worden de bijbehorende transformaties eerst toegepast. - maximumFileSizeToCacheInBytes
nummer optioneel
Standaardwaarde is: 2097152
Deze waarde kan worden gebruikt om de maximale grootte te bepalen van bestanden die vooraf in de cache worden opgeslagen. Dit voorkomt dat u per ongeluk zeer grote bestanden vooraf in de cache plaatst die mogelijk per ongeluk overeenkomen met een van uw patronen.
- wijzigURLPrefix
object optioneel
Een objecttoewijzingsreeks wordt voorafgegaan door vervangende tekenreekswaarden. Dit kan worden gebruikt om bijvoorbeeld een padvoorvoegsel uit een manifestitem te verwijderen of toe te voegen als uw webhostinginstellingen niet overeenkomen met uw lokale bestandssysteeminstellingen. Als alternatief met meer flexibiliteit kunt u de optie
manifestTransforms
gebruiken en een functie opgeven die de vermeldingen in het manifest wijzigt met behulp van de logica die u opgeeft.Voorbeeldgebruik:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Type
Weglaten < GetManifestResult "manifestEntries"
> & bezwaar maken
Eigenschappen
- bestandspaden
snaar[]
GeneratePartial
Eigenschappen
- babelPresetEnvTargets
tekenreeks[] optioneel
Standaardwaarde is: ["chroom >= 56"]
De doelen die moeten worden doorgegeven aan
babel-preset-env
bij het transpileren van de servicemedewerkerbundel. - cacheId
tekenreeks optioneel
Een optionele ID die moet worden toegevoegd aan de cachenamen. Dit is vooral handig voor lokale ontwikkeling waarbij meerdere sites kunnen worden bediend vanuit dezelfde
http://localhost:port
oorsprong. - opruimenVerouderde Caches
Booleaans optioneel
Standaardwaarde is: false
Of Workbox al dan niet moet proberen precaches te identificeren en te verwijderen die zijn gemaakt door oudere, incompatibele versies.
- klantenClaim
Booleaans optioneel
Standaardwaarde is: false
Of de servicemedewerker al dan niet bestaande clients moet gaan beheren zodra deze worden geactiveerd.
- directoryIndex
tekenreeks optioneel
Als een navigatieverzoek voor een URL die eindigt op
/
niet overeenkomt met een vooraf in de cache opgeslagen URL, wordt deze waarde aan de URL toegevoegd en wordt deze gecontroleerd op een vooraf in de cache opgeslagen URL. Dit moet worden ingesteld op wat uw webserver gebruikt voor de directory-index. - schakelDevLogs uit
Booleaans optioneel
Standaardwaarde is: false
- negeerURLParametersOvereenkomend
RegExp[] optioneel
Alle namen van zoekparameters die overeenkomen met een van de RegExp in deze array worden verwijderd voordat wordt gezocht naar een precache-overeenkomst. Dit is handig als uw gebruikers URL's kunnen opvragen die bijvoorbeeld URL-parameters bevatten die worden gebruikt om de bron van het verkeer bij te houden. Indien niet opgegeven, is de standaardwaarde
[/^utm_/, /^fbclid$/]
. - importScripts
tekenreeks[] optioneel
Een lijst met JavaScript-bestanden die moeten worden doorgegeven aan
importScripts()
in het gegenereerde servicewerkerbestand. Dit is handig als u Workbox uw servicewerkerbestand op het hoogste niveau wilt laten maken, maar extra code wilt toevoegen, zoals een push-gebeurtenislistener. - inlineWorkboxRuntime
Booleaans optioneel
Standaardwaarde is: false
Of de runtimecode voor de Workbox-bibliotheek moet worden opgenomen in de servicemedewerker op het hoogste niveau, of moet worden opgesplitst in een afzonderlijk bestand dat samen met de servicemedewerker moet worden geïmplementeerd. Door de runtime gescheiden te houden, hoeven gebruikers de Workbox-code niet telkens opnieuw te downloaden wanneer uw servicemedewerker op het hoogste niveau verandert.
- modus
tekenreeks optioneel
Standaardwaarde is: "productie"
Indien ingesteld op 'productie', wordt er een geoptimaliseerde servicemedewerkerbundel geproduceerd die foutopsporingsinformatie uitsluit. Als dit hier niet expliciet wordt geconfigureerd, wordt de waarde
process.env.NODE_ENV
gebruikt, en als dat niet lukt, valt deze terug naar'production'
. tekenreeks optioneel
Standaardwaarde is: nul
Indien opgegeven, worden alle navigatieverzoeken voor URL's die niet vooraf in de cache zijn geplaatst, uitgevoerd met de HTML op de opgegeven URL. U moet de URL doorgeven van een HTML-document dat in uw precache-manifest staat vermeld. Dit is bedoeld voor gebruik in een Single Page App-scenario, waarin u wilt dat alle navigatie de algemene App Shell HTML gebruikt.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallback
gedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site moet worden behandeld als onderdeel van een Single Page App . Als zowelnavigateFallbackDenylist
alsnavigateFallbackAllowlist
zijn geconfigureerd, heeft de weigeringslijst voorrang.Opmerking : deze RegExps kunnen tijdens een navigatie worden geëvalueerd aan de hand van elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ondervinden bij het navigeren op uw site.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallback
gedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site moet worden behandeld als onderdeel van een Single Page App . Als zowelnavigateFallbackDenylist
alsnavigateFallbackAllowlist
zijn geconfigureerd, heeft de weigeringslijst voorrang.Opmerking : deze RegExps kunnen tijdens een navigatie worden geëvalueerd aan de hand van elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ondervinden bij het navigeren op uw site.
Booleaans optioneel
Standaardwaarde is: false
Of navigatie vooraf laden wel of niet moet worden ingeschakeld in de gegenereerde servicemedewerker. Wanneer ingesteld op true, moet u
runtimeCaching
ook gebruiken om een geschikte responsstrategie in te stellen die overeenkomt met navigatieverzoeken, en gebruik maken van het vooraf geladen antwoord.- offlineGoogleAnalytics
booleaans | GoogleAnalyticsInitializeOptions optioneel
Standaardwaarde is: false
Bepaalt of ondersteuning voor offline Google Analytics wel of niet moet worden opgenomen. Wanneer
true
, wordt de aanroep vaninitialize()
vanworkbox-google-analytics
toegevoegd aan de door u gegenereerde servicemedewerker. Wanneer ingesteld op eenObject
, wordt dat object doorgegeven aan deinitialize()
-aanroep, waardoor u het gedrag kunt aanpassen. - runtimeCaching
RuntimeCaching [] optioneel
Wanneer u de buildtools van Workbox gebruikt om uw servicemedewerker te genereren, kunt u een of meer runtime-cachingconfiguraties opgeven. Deze worden vervolgens vertaald naar
workbox-routing.registerRoute
-aanroepen met behulp van de match- en handler-configuratie die u definieert.Zie de
workbox-build.RuntimeCaching
-documentatie voor alle opties. Het onderstaande voorbeeld toont een typische configuratie, waarbij twee runtime-routes zijn gedefinieerd: - overslaanWachten
Booleaans optioneel
Standaardwaarde is: false
Of er een onvoorwaardelijke aanroep van
skipWaiting()
moet worden toegevoegd aan de gegenereerde servicemedewerker. Alsfalse
, wordt in plaats daarvan eenmessage
toegevoegd, waardoor clientpagina'sskipWaiting()
kunnen activeren doorpostMessage({type: 'SKIP_WAITING'})
aan te roepen op een wachtende servicemedewerker. - bronkaart
Booleaans optioneel
Standaardwaarde is: waar
Of er een brontoewijzing moet worden gemaakt voor de gegenereerde servicemedewerkerbestanden.
GenerateSWOptions
Type
GetManifestOptions
GetManifestResult
Eigenschappen
- graaf
nummer
- manifestInvoeren
- maat
nummer
- waarschuwingen
snaar[]
GlobPartial
Eigenschappen
- globVolg
Booleaans optioneel
Standaardwaarde is: waar
Bepaalt of symlinks al dan niet worden gevolgd bij het genereren van het precache-manifest. Zie de definitie van
follow
in deglob
documentatie voor meer informatie. - globNegeert
tekenreeks[] optioneel
Standaardwaarde is: ["**\/node_modules\/**\/*"]
Een set patronen die overeenkomen met bestanden die altijd moeten worden uitgesloten bij het genereren van het precache-manifest. Zie de definitie van
ignore
in deglob
documentatie voor meer informatie. - globPatronen
tekenreeks[] optioneel
Standaardwaarde is: ["**\/*.{js,wasm,css,html}"]
Bestanden die overeenkomen met een van deze patronen worden opgenomen in het precache-manifest. Zie de
glob
voor meer informatie. - globStrikt
Booleaans optioneel
Standaardwaarde is: waar
Als dit waar is, zal een fout bij het lezen van een directory bij het genereren van een precache-manifest ervoor zorgen dat de build mislukt. Als dit niet waar is, wordt de problematische directory overgeslagen. Zie de definitie van
strict
in deglob
documentatie voor meer informatie. - templatedURL's
object optioneel
Als een URL wordt weergegeven op basis van logica op de server, kan de inhoud ervan afhankelijk zijn van meerdere bestanden of van een andere unieke tekenreekswaarde. De sleutels in dit object zijn door de server weergegeven URL's. Als de waarden een array van tekenreeksen zijn, worden ze geïnterpreteerd als
glob
patronen en wordt de inhoud van bestanden die overeenkomen met de patronen gebruikt om de URL op unieke wijze te versieleren. Indien gebruikt met een enkele tekenreeks, wordt deze geïnterpreteerd als unieke versiegegevens die u voor een bepaalde URL heeft gegenereerd.
InjectManifestOptions
Type
InjectPartial
Eigenschappen
- injectiepunt
tekenreeks optioneel
Standaardwaarde is: "self.__WB_MANIFEST"
De tekenreeks die in het
swSrc
bestand moet worden gevonden. Eenmaal gevonden, wordt het vervangen door het gegenereerde precache -manifest. - SWSRC
snaar
Het pad en de bestandsnaam van het dossier van de servicemedewerker die wordt gelezen tijdens het bouwproces, ten opzichte van de huidige werkmap.
ManifestEntry
Eigenschappen
- integriteit
String optioneel
- herziening
snaar
- URL
snaar
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Type
functie
Parameters
- Manifestentries
( Manifestentry & Object) []
- maat
nummer
- compilatie
Onbekend optioneel
Geeft terug
ManifestTransformResult
Eigenschappen
- manifest
( Manifestentry & Object) []
- maat
nummer
- waarschuwingen
String [] optioneel
OptionalGlobDirectoryPartial
Eigenschappen
- wereldwijde
String optioneel
De lokale map waarmee u
globPatterns
wilt matchen. Het pad is relatief ten opzichte van de huidige map.
RequiredGlobDirectoryPartial
Eigenschappen
- wereldwijde
snaar
De lokale map waarmee u
globPatterns
wilt matchen. Het pad is relatief ten opzichte van de huidige map.
RequiredSWDestPartial
Eigenschappen
- swdst
snaar
Het pad en de bestandsnaam van het dossier van de servicemedewerker die wordt gemaakt door het bouwproces, ten opzichte van de huidige werkmap. Het moet eindigen in '.js'.
RuntimeCaching
Eigenschappen
- begeleider
Dit bepaalt hoe de runtime -route een reactie zal genereren. Om een van de ingebouwde
workbox-strategies
te gebruiken, geeft u de naam, zoals'NetworkFirst'
. Als alternatief kan dit eenworkbox-core.RouteHandler
-callback-functie zijn met aangepaste antwoordlogica. - methode
HttpMethod optioneel
Standaardwaarde is: "Get"
De HTTP -methode om tegen te passen. De standaardwaarde van
'GET'
is normaal voldoende, tenzij u expliciet'POST'
,'PUT'
of een ander type verzoek moet matchen. - opties
Object optioneel
- achtergrondsync
Object optioneel
Dit configureren zal een
workbox-background-sync.BackgroundSyncPlugin
instantie toevoegen aan deworkbox-strategies
die inhandler
zijn geconfigureerd.- naam
snaar
- opties
Wachtrijen optioneel
- uitzending
Object optioneel
Dit configureren zal een
workbox-broadcast-update.BroadcastUpdatePlugin
-instantie toevoegen aan deworkbox-strategies
die zijn geconfigureerd inhandler
.- kanaal naam
String optioneel
- opties
- cachenaam
String optioneel
Indien verstrekt, stelt dit de eigenschap
cacheName
in van deworkbox-strategies
die zijn geconfigureerd inhandler
. - cacheablesponse
CacheableAlerEponseOptions Optioneel
Dit configureren zal een
workbox-cacheable-response.CacheableResponsePlugin
-instantie toevoegen aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - afloop
Vervallingpluginoptions optioneel
Dit configureren zal een
workbox-expiration.ExpirationPlugin
-instantie toevoegen aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - fetchoptions
Requestinit optioneel
Dit configureren zal de waarde
fetchOptions
doorgeven aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - matchoptions
Cachequeryoptions optioneel
Dit configureren zal de waarde
matchOptions
doorgeven aan deworkbox-strategies
die zijn geconfigureerd inhandler
. - NetworkTimeOutseconds
Nummer optioneel
Indien verstrekt, stelt dit de eigenschap
networkTimeoutSeconds
in van deworkbox-strategies
die zijn geconfigureerd inhandler
. Merk op dat alleen'NetworkFirst'
en'NetworkOnly'
networkTimeoutSeconds
ondersteunen. - plug -ins
Workboxplugin [] optioneel
Dit configureren maakt het gebruik van een of meer Workbox-plug-ins mogelijk die geen "snelkoppeling" -opties hebben (zoals
expiration
voorworkbox-expiration.ExpirationPlugin
). De hier aangeboden plug-ins worden toegevoegd aan deworkbox-strategies
die inhandler
zijn geconfigureerd. - promachefallback
Object optioneel
Dit configureren zal een
workbox-precaching.PrecacheFallbackPlugin
-instantie toevoegen aan deworkbox-strategies
die zijn geconfigureerd inhandler
.- fallbackurl
snaar
- Rangerequests
Boolean optioneel
Als u dit inschakelt, wordt een
workbox-range-requests.RangeRequestsPlugin
instantie toegevoegd aan deworkbox-strategies
die zijn geconfigureerd inhandler
.
- urlpattern
string | Regexp | Routematchcallback
Deze matchcriteria bepaalt of de geconfigureerde handler een antwoord genereert voor aanvragen die niet overeenkomen met een van de vooraanstaande URL's. Als meerdere
RuntimeCaching
worden gedefinieerd, dan is de eerste wiensurlPattern
-overeenkomsten degene zijn die reageert.Deze waarde is direct in kaart gebracht naar de eerste parameter die is doorgegeven aan
workbox-routing.registerRoute
. Het wordt aanbevolen om eenworkbox-core.RouteMatchCallback
-functie te gebruiken voor de grootste flexibiliteit.
StrategyName
Enum
"Cachefirst" "Cacheonly" "NetworkFirst" "NetworkOnly" "Stalewhilerevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Eigenschappen
- ImportScriptsviachunks
String [] optioneel
Een of meer namen van webpack -brokken. De inhoud van die brokken zal worden opgenomen in de gegenereerde servicemedewerker, via een oproep tot
importScripts()
. - swdst
String optioneel
Standaardwaarde is: "Service-worker.js"
De activa -naam van het serviceworkerbestand gemaakt door deze plug -in.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Eigenschappen
- compilesrc
Boolean optioneel
Standaardwaarde is: true
Wanneer
true
(de standaardinstelling), wordt hetswSrc
-bestand opgesteld door WebPack. Wanneerfalse
, zal compilatie niet plaatsvinden (enwebpackCompilationPlugins
kunnen niet worden gebruikt.) Stel ingesteld opfalse
als u het manifest in, bijvoorbeeld, een JSON -bestand wilt injecteren. - swdst
String optioneel
De activa -naam van het serviceworkerbestand dat door deze plug -in wordt gemaakt. Indien weggelaten, is de naam gebaseerd op de
swSrc
-naam. - WebpackCompilationPlugins
Elke [] optioneel
Optionele
webpack
-plug -ins die worden gebruikt bij het compileren van hetswSrc
-invoerbestand. Alleen geldig alscompileSrc
true
is.
WebpackPartial
Eigenschappen
- brokken
String [] optioneel
Een of meer broknamen waarvan de bijbehorende uitvoerbestanden moeten worden opgenomen in het precache -manifest.
- uitsluiten
(string | regexp | functie) [] optioneel
Een of meer specificaties die worden gebruikt om activa uit te sluiten van het precache -manifest. Dit wordt geïnterpreteerd volgens dezelfde regels als de
exclude
vanwebpack
. Indien niet verstrekt, is de standaardwaarde[/\.map$/, /^manifest.*\.js$]
. - uitsluiting
String [] optioneel
Een of meer broknamen waarvan de bijbehorende uitvoerbestanden moeten worden uitgesloten van het precache -manifest.
- erbij betrekken
(string | regexp | functie) [] optioneel
Een of meer specificaties die worden gebruikt om activa op te nemen in het precache -manifest. Dit wordt geïnterpreteerd volgens dezelfde regels als de
include
vanwebpack
. - modus
String optioneel
Indien ingesteld op 'productie', wordt een geoptimaliseerde servicemedewerker -bundel die uitsluiting van foutopsporingsinfo wordt geproduceerd. Indien niet expliciet geconfigureerd, wordt de
mode
die is geconfigureerd in de huidigewebpack
gebruikt.
Methoden
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Dit kopieert via een reeks runtime -bibliotheken die door Workbox worden gebruikt in een lokale map, die naast uw servicemedewerker moet worden geïmplementeerd.
Als alternatief voor het implementeren van deze lokale exemplaren, kunt u in plaats daarvan Workbox gebruiken vanuit de officiële CDN -URL.
Deze methode wordt blootgesteld ten behoeve van ontwikkelaars workbox-build.injectManifest
gebruiken die liever de CDN-kopieën van Workbox niet gebruiken. Ontwikkelaars workbox-build.generateSW
gebruiken, hoeven deze methode niet expliciet aan te roepen.
Parameters
- destddirectory
snaar
Het pad naar de bovenliggende map waaronder de nieuwe map van bibliotheken zal worden gemaakt.
Geeft terug
Beloven <String>
De naam van de nieuw gemaakte map.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
Deze methode maakt een lijst met URL's voor Precache, aangeduid als een "precache -manifest", gebaseerd op de opties die u biedt.
Het neemt ook extra opties op die het gedrag van de servicewerker configureren, zoals eventuele runtimeCaching
die het zou moeten gebruiken.
Gebaseerd op het precache-manifest en de extra configuratie, schrijft het een kant-en-klare serviceworker-dossier naar schijf bij 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: '...',
});
Parameters
- configuratie
Geeft terug
Belofte <buildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Deze methode retourneert een lijst met URL's naar Precache, aangeduid als een "precache -manifest", samen met details over het aantal vermeldingen en hun grootte, op basis van de opties die u biedt.
// 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: ...,
});
Parameters
- configuratie
Geeft terug
Belofte <getManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
Parameters
- module naam
snaar
- buildtype
Buildtype
Geeft terug
snaar
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Deze methode maakt een lijst met URL's voor Precache, aangeduid als een "precache -manifest", gebaseerd op de opties die u biedt.
Het manifest wordt geïnjecteerd in het swSrc
-bestand en het Placeholder String injectionPoint
bepaalt waar in het bestand het manifest moet gaan.
Het uiteindelijke dossier van de servicemedewerker, met het manifest geïnjecteerd, is geschreven naar schijf bij swDest
.
Deze methode zal uw swSrc
-bestand niet compileren of bundelen; Het behandelt gewoon het injecteren van het manifest.
// 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: '...',
});
Parameters
- configuratie
Geeft terug
Belofte <buildResult>