werkdoos-build

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 of dontCacheBustURLsMatching 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' .

  • navigerenFallback

    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.

  • navigeerFallbackAllowlist

    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 zowel navigateFallbackDenylist als navigateFallbackAllowlist 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.

  • navigeerFallbackDenylist

    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 zowel navigateFallbackDenylist als navigateFallbackAllowlist 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.

  • navigatieVooraf laden

    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 van initialize() van workbox-google-analytics toegevoegd aan de door u gegenereerde servicemedewerker. Wanneer ingesteld op een Object , wordt dat object doorgegeven aan de initialize() -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. Als false , wordt in plaats daarvan een message toegevoegd, waardoor clientpagina's skipWaiting() kunnen activeren door postMessage({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

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 de glob 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 de glob 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 de glob 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

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

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

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

WebpackInjectManifestPartial

Eigenschappen

  • compileSrc

    Booleaans optioneel

    Standaardwaarde is: waar

    Indien true (de standaardinstelling), wordt het swSrc bestand gecompileerd door webpack. Wanneer false , zal er geen compilatie plaatsvinden (en kunnen webpackCompilationPlugins niet worden gebruikt.) Stel deze in op false 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 het swSrc invoerbestand. Alleen geldig als compileSrc 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 van webpack . 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 van webpack .

  • 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 huidige webpack 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

Geeft terug

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

Geeft terug

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

Geeft terug

,

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 of dontCacheBustURLsMatching 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' .

  • navigerenFallback

    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.

  • navigeerFallbackAllowlist

    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 zowel navigateFallbackDenylist als navigateFallbackAllowlist 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.

  • navigeerFallbackDenylist

    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 zowel navigateFallbackDenylist als navigateFallbackAllowlist 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.

  • navigatieVooraf laden

    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 van initialize() van workbox-google-analytics toegevoegd aan de door u gegenereerde servicemedewerker. Wanneer ingesteld op een Object , wordt dat object doorgegeven aan de initialize() -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. Als false , wordt in plaats daarvan een message toegevoegd, waardoor clientpagina's skipWaiting() kunnen activeren door postMessage({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

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 de glob 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 de glob 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 de glob 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

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

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

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 het swSrc -bestand opgesteld door WebPack. Wanneer false , zal compilatie niet plaatsvinden (en webpackCompilationPlugins kunnen niet worden gebruikt.) Stel ingesteld op false 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 het swSrc -invoerbestand. Alleen geldig als compileSrc 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 van webpack . 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 van webpack .

  • 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 huidige webpack 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

Geeft terug

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

Geeft terug

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

Geeft terug