De workbox-build module integreert in een op knooppunten gebaseerd bouwproces en kan een volledige service worker genereren, of alleen een lijst met assets die vooraf gecached moeten worden en die binnen een bestaande service worker gebruikt kunnen worden.
De twee modi die de meeste ontwikkelaars 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 moet ik gebruiken?
generateSW
De generateSW modus maakt een service workerbestand voor u aan, dat u kunt aanpassen via configuratieopties, en schrijft dit naar schijf.
Wanneer generateSW gebruiken
- U wilt bestanden vooraf cachen.
- U hebt eenvoudige runtime-cachingbehoeften.
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 cachestrategieën.
injectManifest
De injectManifest modus genereert een lijst met URL's die geprecached moeten worden en voegt dat precache-manifest toe aan een bestaand service worker-bestand. Anders blijft het bestand ongewijzigd.
Wanneer injectManifest gebruiken
- U wilt meer controle over uw servicemedewerker.
- U wilt bestanden vooraf cachen.
- U moet de routing en strategieën aanpassen.
- U wilt uw service worker gebruiken met andere platformfuncties (bijv. Web Push ).
Wanneer injectManifest NIET moet worden gebruikt
- 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 buildscript, waarbij u de meest voorkomende configuratieopties gebruikt, zoals hier:
// 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.`);
});
Hiermee wordt een service worker gegenereerd met precaching-instellingen voor alle bestanden die door uw configuratie zijn opgepikt, en de meegeleverde runtime-cachingregels.
Een volledig overzicht van de configuratieopties vindt u in de referentiedocumentatie .
injectManifest -modus
U kunt de injectManifest modus gebruiken binnen een op knooppunten gebaseerd buildscript, waarbij u de meest voorkomende configuratieopties gebruikt, zoals hier:
// 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 opgepikt. Deze wordt vervolgens in uw bestaande service worker-bestand geïnjecteerd.
Een volledig overzicht van de 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 door workbox-build wordt ondersteund en die mogelijk geschikt is voor bepaalde use cases.
getManifest modus
Dit is qua concept vergelijkbaar met de injectManifest modus, maar in plaats van dat het manifest wordt toegevoegd aan het bronbestand van de serviceworker, wordt de matrix met manifestvermeldingen geretourneerd, samen met informatie over het aantal vermeldingen en de totale grootte.
U kunt de injectManifest modus gebruiken binnen een op knooppunten gebaseerd buildscript, waarbij u de meest voorkomende configuratieopties gebruikt, zoals hier:
// 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 volledig overzicht van de configuratieopties vindt u in de referentiedocumentatie .
Typen
BasePartial
Eigenschappen
- extraManifestEntries
(string | ManifestEntry )[] optioneel
Een lijst met items die vooraf in de cache moeten worden opgeslagen, naast items 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 dat ze zijn vrijgesteld van de normale HTTP-cachebusting die plaatsvindt bij het vullen van de precache. Hoewel dit niet vereist is, is het raadzaam om, als uw bestaande buildproces al een
[hash]-waarde in elke bestandsnaam invoegt, een RegExp op te geven die dit detecteert. Dit vermindert namelijk het bandbreedteverbruik tijdens het precachen. - manifestTransforms
ManifestTransform [] optioneel
Een of meer functies die sequentieel worden toegepast op het gegenereerde manifest. Als
modifyURLPrefixofdontCacheBustURLsMatchingook is opgegeven, worden de bijbehorende transformaties eerst toegepast. - maximaleBestandsgrootteOmInBytesTeCacheNaar
nummer optioneel
Standaardwaarde is: 2097152
Deze waarde kan worden gebruikt om de maximale bestandsgrootte te bepalen die in de precache wordt opgeslagen. Dit voorkomt dat u onbedoeld zeer grote bestanden in de precache opslaat die mogelijk per ongeluk aan een van uw patronen voldoen.
- wijzigURLPrefix
object optioneel
Een object dat tekenreeksprefixen koppelt aan vervangende tekenreekswaarden. Dit kan bijvoorbeeld worden gebruikt om een padprefix uit een manifestvermelding te verwijderen of toe te voegen als uw webhostinginstellingen niet overeenkomen met uw lokale bestandssysteeminstellingen. Als alternatief met meer flexibiliteit kunt u de optie
manifestTransformsgebruiken en een functie bieden die de vermeldingen in het manifest wijzigt met behulp van de door u opgegeven logica.Voorbeeldgebruik:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Type
Weglaten < GetManifestResult "manifestEntries"
> & object
Eigenschappen
- bestandspaden
snaar[]
GeneratePartial
Eigenschappen
- babelPresetEnvTargets
string[] optioneel
Standaardwaarde is: ["chrome >= 56"]
De doelen die moeten worden doorgegeven aan
babel-preset-envbij het transpileren van de service worker-bundel. - cache-ID
string optioneel
Een optionele ID die aan cachenamen kan worden toegevoegd. Dit is vooral handig voor lokale ontwikkeling, waarbij meerdere sites vanaf dezelfde
http://localhost:portoorsprong kunnen worden bediend. - opruimenVerouderdeCaches
boolean optioneel
Standaardwaarde is: false
Of Workbox moet proberen om precaches te identificeren en verwijderen die zijn gemaakt door oudere, incompatibele versies.
- klantenClaim
boolean optioneel
Standaardwaarde is: false
Of de service worker direct na activering de bestaande clients moet gaan beheren .
- directoryIndex
string optioneel
Als een navigatieverzoek voor een URL die eindigt op
/niet overeenkomt met een precache-URL, wordt deze waarde toegevoegd aan de URL en wordt gecontroleerd op een precache-match. Deze waarde moet worden ingesteld op wat uw webserver gebruikt voor de directory-index. - DevLogs uitschakelen
boolean optioneel
Standaardwaarde is: false
- negeerURLParametersMatching
RegExp[] optioneel
Zoekparameternamen die overeenkomen met een van de RegExp-namen in deze matrix worden verwijderd voordat er naar een precache-match wordt gezocht. Dit is handig als uw gebruikers URL's opvragen die bijvoorbeeld URL-parameters bevatten die worden gebruikt om de bron van het verkeer te volgen. Indien niet opgegeven, is de standaardwaarde
[/^utm_/, /^fbclid$/]. - importScripts
string[] optioneel
Een lijst met JavaScript-bestanden die moeten worden doorgegeven aan
importScripts()in het gegenereerde service worker-bestand. Dit is handig wanneer u Workbox uw service worker-bestand op het hoogste niveau wilt laten maken, maar ook wat extra code wilt toevoegen, zoals een push event listener. - inlineWorkboxRuntime
boolean optioneel
Standaardwaarde is: false
Of de runtimecode voor de Workbox-bibliotheek moet worden opgenomen in de service worker op het hoogste niveau, of moet worden gesplitst in een apart bestand dat samen met de service worker moet worden geïmplementeerd. Door de runtime gescheiden te houden, hoeven gebruikers de Workbox-code niet telkens opnieuw te downloaden wanneer uw service worker op het hoogste niveau wordt gewijzigd.
- modus
string optioneel
Standaardwaarde is: "productie"
Indien ingesteld op 'productie', wordt een geoptimaliseerde service worker-bundel geproduceerd die debug-informatie uitsluit. Indien hier niet expliciet geconfigureerd, wordt de waarde
process.env.NODE_ENVgebruikt. Indien dit niet het geval is, wordt teruggevallen op'production'. string optioneel
Standaardwaarde is: null
Indien opgegeven, worden alle navigatieaanvragen voor URL's die niet in de precache zijn opgeslagen, verwerkt met de HTML op de opgegeven URL. U moet de URL opgeven van een HTML-document dat in uw precache-manifest staat. Dit is bedoeld voor gebruik in een Single Page App-scenario, waarin u wilt dat alle navigaties de algemene App Shell HTML gebruiken.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallbackgedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site als onderdeel van een Single Page App moet worden behandeld. Als zowelnavigateFallbackDenylistalsnavigateFallbackAllowlistzijn geconfigureerd, heeft de weigeringslijst voorrang.Let op : Deze RegExps kunnen tijdens een navigatie worden geëvalueerd voor elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ervaren bij het navigeren op uw site.
RegExp[] optioneel
Een optionele reeks reguliere expressies die beperkt op welke URL's het geconfigureerde
navigateFallbackgedrag van toepassing is. Dit is handig als slechts een subset van de URL's van uw site als onderdeel van een Single Page App moet worden behandeld. Als zowelnavigateFallbackDenylistalsnavigateFallbackAllowlistzijn geconfigureerd, heeft de weigeringslijst voorrang.Let op : Deze RegExps kunnen tijdens een navigatie worden geëvalueerd voor elke bestemmings-URL. Vermijd het gebruik van complexe RegExps , anders kunnen uw gebruikers vertragingen ervaren bij het navigeren op uw site.
boolean optioneel
Standaardwaarde is: false
Of navigatie vooraf laden in de gegenereerde service worker al dan niet moet worden ingeschakeld. Indien ingesteld op 'true', moet u ook
runtimeCachinggebruiken om een geschikte responsstrategie in te stellen die overeenkomt met navigatieverzoeken en gebruikmaakt van de vooraf geladen respons.- offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions optioneel
Standaardwaarde is: false
Bepaalt of ondersteuning voor offline Google Analytics wordt opgenomen. Indien
true, wordt de aanroep vaninitialize()vanworkbox-google-analyticstoegevoegd aan uw gegenereerde service worker. Indien ingesteld op 'Object, wordt dat object doorgegeven aan deinitialize()-aanroep, zodat u het gedrag kunt aanpassen. - runtimeCaching
RuntimeCaching [] optioneel
Wanneer u de buildtools van Workbox gebruikt om uw service worker te genereren, kunt u een of meer runtime-cacheconfiguraties opgeven. Deze worden vervolgens vertaald naar
workbox-routing.registerRoute-aanroepen met behulp van de door u gedefinieerde match- en handlerconfiguratie.Zie de documentatie van
workbox-build.RuntimeCachingvoor alle opties. Het onderstaande voorbeeld toont een typische configuratie met twee gedefinieerde runtime-routes: - overslaanWachten
boolean optioneel
Standaardwaarde is: false
Of er een onvoorwaardelijke aanroep van
skipWaiting()moet worden toegevoegd aan de gegenereerde service worker. Indienfalse, wordt in plaats daarvan eenmessagetoegevoegd, waardoor clientpagina'sskipWaiting()kunnen activeren doorpostMessage({type: 'SKIP_WAITING'})aan te roepen op een wachtende service worker. - bronkaart
boolean optioneel
Standaardwaarde is: true
Of er een sourcemap moet worden gemaakt voor de gegenereerde service worker-bestanden.
GenerateSWOptions
Type
GetManifestOptions
GetManifestResult
Eigenschappen
- graaf
nummer
- manifestEntries
- maat
nummer
- waarschuwingen
snaar[]
GlobPartial
Eigenschappen
- globVolgen
boolean optioneel
Standaardwaarde is: true
Bepaalt of symlinks worden gevolgd bij het genereren van het precache-manifest. Zie de definitie van '
followin deglob-documentatie voor meer informatie. - globNegeert
string[] 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
ignorein deglob-documentatie voor meer informatie. - globPatronen
string[] optioneel
Standaardwaarde is: ["**\/*.{js,wasm,css,html}"]
Bestanden die aan een van deze patronen voldoen, worden opgenomen in het precache-manifest. Zie de
globprimer voor meer informatie. - templatedURL's
object optioneel
Als een URL wordt weergegeven op basis van serverlogica, kan de inhoud ervan afhankelijk zijn van meerdere bestanden of van een andere unieke tekenreekswaarde. De sleutels in dit object zijn server-gerenderde URL's. Als de waarden een array van tekenreeksen zijn, worden ze geïnterpreteerd als
globen wordt de inhoud van bestanden die aan de patronen voldoen, gebruikt om de URL uniek te versioneren. Als er één tekenreeks wordt gebruikt, wordt deze geïnterpreteerd als unieke versiegegevens die u voor een bepaalde URL hebt gegenereerd.
InjectManifestOptions
Type
InjectPartial
Eigenschappen
- injectiepunt
string optioneel
Standaardwaarde is: "self.__WB_MANIFEST"
De string die in het
swSrcbestand gevonden moet worden. Zodra deze gevonden is, wordt deze vervangen door het gegenereerde precache-manifest. - swSrc
snaar
Het pad en de bestandsnaam van het service worker-bestand dat tijdens het bouwproces wordt gelezen, relatief ten opzichte van de huidige werkmap.
ManifestEntry
Eigenschappen
- integriteit
string optioneel
- herziening
snaar
- url
snaar
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Type
functie
Parameters
- manifestEntries
( ManifestEntry & object)[]
- maat
nummer
- compilatie
onbekend optioneel
Retourneren
Belofte< ManifestTransformResult > | ManifestTransformResult
ManifestTransformResult
Eigenschappen
- manifest
( ManifestEntry & object)[]
- maat
nummer
- waarschuwingen
string[] optioneel
OptionalGlobDirectoryPartial
Eigenschappen
- globDirectory
string optioneel
De lokale map waarmee u
globPatternswilt vergelijken. Het pad is relatief ten opzichte van de huidige map.
RequiredGlobDirectoryPartial
Eigenschappen
- globDirectory
snaar
De lokale map waarmee u
globPatternswilt vergelijken. Het pad is relatief ten opzichte van de huidige map.
RequiredSWDestPartial
Eigenschappen
- swDest
snaar
Het pad en de bestandsnaam van het service worker-bestand dat door het buildproces wordt aangemaakt, relatief ten opzichte van de huidige werkmap. Het moet eindigen op '.js'.
RuntimeCaching
Eigenschappen
- afhandelaar
Dit bepaalt hoe de runtime-route een respons genereert. Om een van de ingebouwde
workbox-strategieste gebruiken, geeft u de naam ervan op, bijvoorbeeld'NetworkFirst'. Als alternatief kan dit eenworkbox-core.RouteHandlercallbackfunctie zijn met aangepaste responslogica. - 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 vergelijken. - opties
object optioneel
- achtergrondSync
object optioneel
Als u dit configureert, wordt een
workbox-background-sync.BackgroundSyncPlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler.- naam
snaar
- opties
QueueOptions optioneel
- uitzendingUpdate
object optioneel
Als u dit configureert, wordt een
workbox-broadcast-update.BroadcastUpdatePlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler.- kanaalnaam
string optioneel
- opties
- cachenaam
string optioneel
Als deze optie is opgegeven, wordt de
cacheNameeigenschap van deworkbox-strategiesdie inhandlerzijn geconfigureerd, ingesteld. - cachebareResponse
CacheableResponseOptions optioneel
Als u dit configureert, wordt een
workbox-cacheable-response.CacheableResponsePlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler. - vervaldatum
ExpirationPluginOptions optioneel
Als u dit configureert, wordt een
workbox-expiration.ExpirationPlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler. - fetchOptions
RequestInit optioneel
Als u dit configureert, wordt de
fetchOptionswaarde doorgegeven aan deworkbox-strategiesdie zijn geconfigureerd in dehandler. - matchOptions
CacheQueryOptions optioneel
Als u dit configureert, wordt de
matchOptionswaarde doorgegeven aan deworkbox-strategiesdie zijn geconfigureerd inhandler. - netwerkTimeoutSeconden
nummer optioneel
Indien opgegeven, wordt hiermee de eigenschap
networkTimeoutSecondsingesteld van deworkbox-strategiesdie in dehandlerzijn geconfigureerd. Let op: alleen'NetworkFirst'en'NetworkOnly'ondersteunennetworkTimeoutSeconds. - plug-ins
WorkboxPlugin [] optioneel
Door dit te configureren, kunt u een of meer Workbox-plugins gebruiken die geen snelkoppelingsopties hebben (zoals
expirationvoorworkbox-expiration.ExpirationPlugin). De hier aangeboden plugins worden toegevoegd aan deworkbox-strategiesdie geconfigureerd zijn inhandler. - precacheFallback
object optioneel
Als u dit configureert, wordt er een
workbox-precaching.PrecacheFallbackPlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler.- fallback-URL
snaar
- bereikAanvragen
boolean optioneel
Als u dit inschakelt, wordt er een
workbox-range-requests.RangeRequestsPlugin-exemplaar toegevoegd aan deworkbox-strategiesdie zijn geconfigureerd inhandler.
- urlPatroon
tekenreeks | RegExp | RouteMatchCallback
Deze matchcriteria bepalen of de geconfigureerde handler een respons genereert voor aanvragen die niet overeenkomen met een van de vooraf gecachede URL's. Als er meerdere
RuntimeCachingroutes zijn gedefinieerd, reageert de eerste waarvanurlPatternovereenkomt.Deze waarde wordt rechtstreeks gekoppeld aan de eerste parameter die aan
workbox-routing.registerRoutewordt doorgegeven. Voor maximale flexibiliteit wordt het gebruik van deworkbox-core.RouteMatchCallback-functie aanbevolen.
StrategyName
Enum
"CacheFirst" "Alleen cache" "NetwerkEerst" "Alleen netwerk" "StaleWhileRevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Eigenschappen
- importScriptsViaChunks
string[] 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
string optioneel
Standaardwaarde is: "service-worker.js"
De assetnaam van het service workerbestand dat door deze plugin is gemaakt.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Eigenschappen
- compileSrc
boolean optioneel
Standaardwaarde is: true
Indien
true(de standaardinstelling), wordt hetswSrcbestand gecompileerd door webpack. Indienfalse, vindt er geen compilatie plaats (en kunnenwebpackCompilationPluginsniet worden gebruikt). Stel in opfalseals u het manifest wilt injecteren in bijvoorbeeld een JSON-bestand. - swDest
string optioneel
De assetnaam van het service worker-bestand dat door deze plugin wordt aangemaakt. Indien weggelaten, wordt de naam gebaseerd op de
swSrcnaam. - webpackCompilatiePlugins
any[] optioneel
Optionele
webpackplug-ins die worden gebruikt bij het compileren van hetswSrcinvoerbestand. Alleen geldig alscompileSrctrueis.
WebpackPartial
Eigenschappen
- brokken
string[] optioneel
Een of meer chunknamen waarvan de bijbehorende uitvoerbestanden in het precache-manifest moeten worden opgenomen.
- uitsluiten
(string | RegExp | functie)[] optioneel
Een of meer specificaties die worden gebruikt om assets uit te sluiten van het precachemanifest. Dit wordt geïnterpreteerd volgens dezelfde regels als de standaard
excludevanwebpack. Indien niet opgegeven, is de standaardwaarde[/\.map$/, /^manifest.*\.js$]. - uitsluitenBrokken
string[] optioneel
Een of meer bloknamen waarvan de bijbehorende uitvoerbestanden moeten worden uitgesloten van het precache-manifest.
- erbij betrekken
(string | RegExp | functie)[] optioneel
Een of meer specificators die worden gebruikt om assets in het precache-manifest op te nemen. Dit wordt geïnterpreteerd volgens dezelfde regels als de standaard
includeoptie vanwebpack. - modus
string optioneel
Indien ingesteld op 'productie', wordt een geoptimaliseerde service worker-bundel geproduceerd die debug-informatie uitsluit. Indien hier niet expliciet geconfigureerd, wordt de
modegebruikt die is geconfigureerd in de huidigewebpackcompilatie.
Methoden
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Hiermee kopieert u een set runtime-bibliotheken die door Workbox worden gebruikt naar een lokale directory. Deze directory moet samen met uw service worker-bestand worden geïmplementeerd.
Als alternatief voor het implementeren van deze lokale kopieën, kunt u Workbox gebruiken via de officiële CDN-URL.
Deze methode is beschikbaar voor ontwikkelaars die workbox-build.injectManifest gebruiken en liever geen CDN-kopieën van Workbox gebruiken. Ontwikkelaars workbox-build.generateSW gebruiken, hoeven deze methode niet expliciet aan te roepen.
Parameters
- bestemmingsDirectory
snaar
Het pad naar de bovenliggende map waarin de nieuwe map met bibliotheken wordt gemaakt.
Retourneren
Belofte<string>
De naam van de nieuw aangemaakte directory.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Met deze methode wordt op basis van de door u opgegeven opties een lijst met URL's gemaakt die u wilt precachen (ook wel een 'precache-manifest' genoemd).
Het neemt ook extra opties op die het gedrag van de service worker configureren, zoals eventuele runtimeCaching regels die gebruikt moeten worden.
Op basis van het precache-manifest en de aanvullende configuratie wordt een gebruiksklaar service workerbestand naar schijf geschreven 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
Retourneren
Belofte< BuildResult >
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Deze methode retourneert een lijst met URL's die u wilt precachen, een zogenaamd 'precache-manifest', 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
Retourneren
Belofte< GetManifestResult >
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Parameters
- modulenaam
snaar
- bouwType
Bouwtype
Retourneren
snaar
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Met deze methode wordt op basis van de door u opgegeven opties een lijst met URL's gemaakt die u wilt precachen (ook wel een 'precache-manifest' genoemd).
Het manifest wordt in het bestand swSrc geïnjecteerd en de tijdelijke tekenreeks injectionPoint bepaalt waar in het bestand het manifest moet worden geplaatst.
Het uiteindelijke service workerbestand, met het geïnjecteerde manifest, wordt naar schijf geschreven op swDest .
Met deze methode wordt het swSrc bestand niet gecompileerd of gebundeld. Het enige dat wordt gedaan, is 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
Retourneren
Belofte< BuildResult >