Moduł workbox-build jest zintegrowany z procesem kompilacji opartym na węzłach i może generować cały moduł service worker lub tylko listę zasobów do wstępnego buforowania, które można wykorzystać w istniejącym module service worker.
Najczęściej używane przez deweloperów tryby to generateSW i injectManifest. Odpowiedzi na te pytania pomogą Ci wybrać odpowiedni tryb i konfigurację.
Którego trybu użyć
generateSW
Tryb generateSW tworzy plik service worker dostosowany za pomocą opcji konfiguracji i zapisuje go na dysku.
Kiedy używać generateSW
- chcesz wstępnie zapisać pliki w pamięci podręcznej.
- masz proste potrzeby związane z pamięcią podręczną w czasie działania;
Kiedy NIE używać generateSW
- Chcesz używać innych funkcji Service Worker (np. Web Push).
- Chcesz zaimportować dodatkowe skrypty lub dodać dodatkową logikę do niestandardowych strategii buforowania.
injectManifest
Tryb injectManifest wygeneruje listę adresów URL do wstępnego buforowania i doda ten manifest wstępnego buforowania do istniejącego pliku service worker. W przeciwnym razie plik pozostanie bez zmian.
Kiedy używać injectManifest
- Chcesz mieć większą kontrolę nad service workerem.
- chcesz wstępnie zapisać pliki w pamięci podręcznej.
- Musisz dostosować routing i strategie.
- Chcesz używać service workera z innymi funkcjami platformy (np. Web Push).
Kiedy NIE używać injectManifest
- Chcesz w najprostszy sposób dodać do witryny service worker.
generateSW Tryb
W skrypcie kompilacji opartym na węzłach możesz użyć trybu generateSW, korzystając z najpopularniejszych opcji konfiguracji, w ten sposób:
// Inside of build.js:
const {generateSW} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
generateSW({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
navigateFallback: '...',
runtimeCaching: [{
// Routing via a matchCallback function:
urlPattern: ({request, url}) => ...,
handler: '...',
options: {
cacheName: '...',
expiration: {
maxEntries: ...,
},
},
}, {
// Routing via a RegExp:
urlPattern: new RegExp('...'),
handler: '...',
options: {
cacheName: '...',
plugins: [..., ...],
},
}],
skipWaiting: ...,
swDest: '...',
}).then(({count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while generating a service worker:',
warnings.join('\n')
);
}
console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
});
Spowoduje to wygenerowanie usługi Service Worker z konfiguracją wstępnego buforowania wszystkich plików wybranych przez konfigurację oraz podanych reguł buforowania w czasie działania.
Pełny zestaw opcji konfiguracji znajdziesz w dokumentacji.
injectManifest Tryb
W skrypcie kompilacji opartym na węzłach możesz użyć trybu injectManifest, korzystając z najpopularniejszych opcji konfiguracji, w ten sposób:
// Inside of build.js:
const {injectManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
injectManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
swDest: '...',
swSrc: '...',
}).then(({count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while injecting the manifest:',
warnings.join('\n')
);
}
console.log(`Injected a manifest which will precache ${count} files, totaling ${size} bytes.`);
});
Spowoduje to utworzenie manifestu wstępnego buforowania na podstawie plików wybranych przez konfigurację i wstrzyknięcie go do istniejącego pliku service worker.
Pełny zestaw opcji konfiguracji znajdziesz w dokumentacji.
Dodatkowe tryby
Uważamy, że generateSW lub injectManifest zaspokoją potrzeby większości deweloperów. workbox-build obsługuje jednak jeszcze jeden tryb, który może być odpowiedni w niektórych przypadkach użycia.
getManifest Tryb
Jest to podobne do trybu injectManifest, ale zamiast dodawać plik manifestu do pliku service workera źródła, zwraca tablicę wpisów manifestu wraz z informacjami o liczbie wpisów i łącznym rozmiarze.
W skrypcie kompilacji opartym na węzłach możesz użyć trybu injectManifest, korzystając z najpopularniejszych opcji konfiguracji, w ten sposób:
// Inside of build.js:
const {getManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
getManifest({
dontCacheBustURLsMatching: [new RegExp('...')],
globDirectory: '...',
globPatterns: ['...', '...'],
maximumFileSizeToCacheInBytes: ...,
}).then(({manifestEntries, count, size, warnings}) => {
if (warnings.length > 0) {
console.warn(
'Warnings encountered while getting the manifest:',
warnings.join('\n')
);
}
// Do something with the manifestEntries, and potentially log count and size.
});
Pełny zestaw opcji konfiguracji znajdziesz w dokumentacji.
Typy
BasePartial
Właściwości
-
additionalManifestEntries
(string | ManifestEntry)[] opcjonalnie
Lista wpisów do wstępnego buforowania, oprócz wpisów wygenerowanych w ramach konfiguracji kompilacji.
-
dontCacheBustURLsMatching
Wyrażenie regularne opcjonalne
Komponenty, które pasują do tego wzorca, będą traktowane jako wersjonowane w unikalny sposób za pomocą adresu URL i wyłączone z normalnego unieważniania pamięci podręcznej HTTP, które jest wykonywane podczas wypełniania pamięci podręcznej wstępnej. Nie jest to wymagane, ale jeśli Twój obecny proces kompilacji wstawia już wartość
[hash]do każdej nazwy pliku, zalecamy podanie wyrażenia regularnego, które to wykryje, ponieważ zmniejszy to przepustowość zużywaną podczas wstępnego buforowania. -
manifestTransforms
ManifestTransform[] opcjonalnie
Co najmniej 1 funkcja, która będzie stosowana sekwencyjnie do wygenerowanego pliku manifestu. Jeśli określono też
modifyURLPrefixlubdontCacheBustURLsMatching, najpierw zostaną zastosowane odpowiednie przekształcenia. -
maximumFileSizeToCacheInBytes
number opcjonalny
Wartość domyślna to: 2097152
Ta wartość może służyć do określania maksymalnego rozmiaru plików, które będą wstępnie buforowane. Zapobiega to przypadkowemu wstępnemu buforowaniu bardzo dużych plików, które mogły przypadkowo pasować do jednego z Twoich wzorców.
-
modifyURLPrefix
obiekt opcjonalny
Ciąg znaków mapowania obiektów, który zawiera prefiksy ciągów znaków i wartości ciągów znaków zastępujących. Można go użyć np. do usunięcia lub dodania prefiksu ścieżki z pozycji w pliku manifestu, jeśli konfiguracja hostingu nie pasuje do konfiguracji lokalnego systemu plików. Alternatywnie możesz użyć bardziej elastycznej opcji
manifestTransformsi podać funkcję, która modyfikuje wpisy w pliku manifestu za pomocą dowolnej logiki.Przykład użycia:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Typ
Omit<GetManifestResult"manifestEntries"
> & object
Właściwości
-
filePaths
string[]
GeneratePartial
Właściwości
-
babelPresetEnvTargets
string[] opcjonalny
Wartość domyślna to: ["chrome >= 56"]
Cele, które mają zostać przekazane do
babel-preset-envpodczas transpilacji pakietu service worker. -
cacheId
ciąg znaków opcjonalny
Opcjonalny identyfikator, który ma być dodawany na początku nazw pamięci podręcznej. Jest to przydatne przede wszystkim w przypadku lokalnego tworzenia aplikacji, gdy wiele witryn może być obsługiwanych z tego samego
http://localhost:portpochodzenia. -
cleanupOutdatedCaches
wartość logiczna opcjonalna
Wartość domyślna to false.
Określa, czy Workbox ma próbować identyfikować i usuwać wszystkie pamięci podręczne utworzone przez starsze, niezgodne wersje.
-
clientsClaim
wartość logiczna opcjonalna
Wartość domyślna to false.
Określa, czy service worker ma przejąć kontrolę nad istniejącymi klientami od razu po aktywacji.
-
directoryIndex
ciąg znaków opcjonalny
Jeśli żądanie nawigacji dla adresu URL kończącego się na
/nie pasuje do wstępnie buforowanego adresu URL, ta wartość zostanie dołączona do adresu URL i sprawdzona pod kątem dopasowania do wstępnie buforowanego adresu URL. Należy ustawić wartość, której serwer WWW używa jako indeksu katalogu. -
disableDevLogs
wartość logiczna opcjonalna
Wartość domyślna to false.
-
ignoreURLParametersMatching
RegExp[] opcjonalny
Wszystkie nazwy parametrów wyszukiwania, które pasują do jednego z wyrażeń regularnych w tej tablicy, zostaną usunięte przed wyszukaniem dopasowania do wstępnego buforowania. Jest to przydatne, jeśli użytkownicy mogą wysyłać żądania adresów URL, które zawierają np. parametry URL używane do śledzenia źródła ruchu. Jeśli nie podasz żadnej opcji, domyślna wartość to
[/^utm_/, /^fbclid$/]. -
importScripts
string[] opcjonalny
Lista plików JavaScript, które powinny zostać przekazane do
importScripts()w wygenerowanym pliku service worker. Jest to przydatne, gdy chcesz, aby Workbox utworzył plik service worker najwyższego poziomu, ale chcesz dołączyć dodatkowy kod, np. odbiornik zdarzeń push. -
inlineWorkboxRuntime
wartość logiczna opcjonalna
Wartość domyślna to false.
Określa, czy kod środowiska wykonawczego biblioteki Workbox ma być uwzględniony w usłudze Service Worker najwyższego poziomu, czy też podzielony na osobny plik, który należy wdrożyć razem z usługą Service Worker. Oddzielenie środowiska wykonawczego oznacza, że użytkownicy nie będą musieli ponownie pobierać kodu Workbox za każdym razem, gdy zmieni się pracownik usługi najwyższego poziomu.
-
tryb
ciąg znaków opcjonalny
Wartość domyślna to: „production”
Jeśli ustawisz wartość „production”, zostanie wygenerowany zoptymalizowany pakiet service workera, który nie będzie zawierać informacji do debugowania. Jeśli nie skonfigurujesz go tutaj, zostanie użyta wartość
process.env.NODE_ENV, a jeśli to się nie uda, zostanie użyta wartość'production'. -
ciąg znaków opcjonalny
Wartość domyślna to: null
Jeśli ta opcja jest określona, wszystkie żądania nawigacji dotyczące adresów URL, które nie zostały wstępnie zapisane w pamięci podręcznej, będą realizowane za pomocą kodu HTML podanego w adresie URL. Musisz przekazać adres URL dokumentu HTML, który jest wymieniony w pliku manifestu wstępnego buforowania. Jest to rozwiązanie przeznaczone do aplikacji jednostronicowych, w których chcesz, aby wszystkie nawigacje korzystały ze wspólnego kodu HTML powłoki aplikacji.
-
RegExp[] opcjonalny
Opcjonalna tablica wyrażeń regularnych, która ogranicza adresy URL, do których ma zastosowanie skonfigurowane działanie
navigateFallback. Jest to przydatne, jeśli tylko podzbiór adresów URL witryny powinien być traktowany jako część aplikacji jednostronicowej. Jeśli skonfigurowano zarównonavigateFallbackDenylist, jak inavigateFallbackAllowlist, lista wykluczeń ma pierwszeństwo.Uwaga: te wyrażenia regularne mogą być sprawdzane w przypadku każdego docelowego adresu URL podczas nawigacji. Unikaj używania złożonych wyrażeń regularnych, ponieważ użytkownicy mogą doświadczać opóźnień podczas poruszania się po Twojej witrynie.
-
RegExp[] opcjonalny
Opcjonalna tablica wyrażeń regularnych, która ogranicza adresy URL, do których ma zastosowanie skonfigurowane działanie
navigateFallback. Jest to przydatne, jeśli tylko podzbiór adresów URL witryny powinien być traktowany jako część aplikacji jednostronicowej. Jeśli skonfigurowane są zarównonavigateFallbackDenylist, jak inavigateFallbackAllowlist, lista zablokowanych adresów URL ma pierwszeństwo.Uwaga: te wyrażenia regularne mogą być sprawdzane w przypadku każdego docelowego adresu URL podczas nawigacji. Unikaj używania złożonych wyrażeń regularnych, ponieważ użytkownicy mogą doświadczać opóźnień podczas poruszania się po Twojej witrynie.
-
wartość logiczna opcjonalna
Wartość domyślna to false.
Określa, czy w wygenerowanym pliku service worker ma być włączone wstępne wczytywanie nawigacji. Jeśli ta wartość jest ustawiona na „true”, musisz też użyć parametru
runtimeCaching, aby skonfigurować odpowiednią strategię odpowiedzi, która będzie pasować do żądań nawigacji i korzystać z wstępnie załadowanej odpowiedzi. -
offlineGoogleAnalytics
wartość logiczna | GoogleAnalyticsInitializeOptions opcjonalnie
Wartość domyślna to false.
Określa, czy ma być uwzględniana obsługa Google Analytics w trybie offline. Gdy
true, wywołanieworkbox-google-analyticswinitialize()zostanie dodane do wygenerowanego procesu roboczego usługi. Jeśli ten parametr ma wartośćObject, obiekt zostanie przekazany do wywołaniainitialize(), co umożliwi dostosowanie działania. -
runtimeCaching
RuntimeCaching[] opcjonalne
Jeśli do generowania skryptu service worker używasz narzędzi do kompilacji Workbox, możesz określić co najmniej jedną konfigurację pamięci podręcznej w czasie działania. Są one następnie tłumaczone na wywołania
workbox-routing.registerRouteprzy użyciu zdefiniowanej przez Ciebie konfiguracji dopasowania i procedury obsługi.Wszystkie opcje znajdziesz w
workbox-build.RuntimeCachingdokumentacji. Poniższy przykład przedstawia typową konfigurację z 2 zdefiniowanymi trasami środowiska wykonawczego: -
skipWaiting
wartość logiczna opcjonalna
Wartość domyślna to false.
Określa, czy do wygenerowanego procesu service worker ma zostać dodane bezwarunkowe wywołanie funkcji
skipWaiting(). Jeślifalse, zamiast tego zostanie dodany odbiornikmessage, który umożliwi stronom klienta wywoływanieskipWaiting()przez wywoływaniepostMessage({type: 'SKIP_WAITING'})w oczekującym procesie service worker. -
sourcemap
wartość logiczna opcjonalna
Wartość domyślna to true.
Określa, czy utworzyć mapę źródła dla wygenerowanych plików service worker.
GenerateSWOptions
Typ
GetManifestOptions
GetManifestResult
Właściwości
-
liczba
liczba
-
manifestEntries
-
rozmiar
liczba
-
ostrzeżenia
string[]
GlobPartial
Właściwości
-
globFollow
wartość logiczna opcjonalna
Wartość domyślna to true.
Określa, czy podczas generowania pliku manifestu pamięci podręcznej mają być używane linki symboliczne. Więcej informacji znajdziesz w definicji
followwglobdokumentacji. -
globIgnores
string[] opcjonalny
Wartość domyślna to: ["**\/node_modules\/**\/*"]
Zestaw wzorców pasujących do plików, które mają być zawsze wykluczane podczas generowania manifestu pamięci podręcznej. Więcej informacji znajdziesz w definicji
ignorewglobdokumentacji. -
globPatterns
string[] opcjonalny
Wartość domyślna to: ["**\/*.{js,wasm,css,html}"]
Pliki pasujące do dowolnego z tych wzorców zostaną uwzględnione w manifestie wstępnego buforowania. Więcej informacji znajdziesz w
globwprowadzeniu. -
templatedURLs
obiekt opcjonalny
Jeśli adres URL jest renderowany na podstawie logiki po stronie serwera, jego zawartość może zależeć od wielu plików lub od innego unikalnego ciągu znaków. Klucze w tym obiekcie to adresy URL renderowane na serwerze. Jeśli wartości są tablicą ciągów znaków, będą interpretowane jako
globwzorce, a zawartość wszystkich plików pasujących do wzorców będzie używana do unikalnego określania wersji adresu URL. Jeśli jest używany z jednym ciągiem znaków, będzie interpretowany jako unikalne informacje o wersji wygenerowane przez Ciebie dla danego adresu URL.
InjectManifestOptions
Typ
InjectPartial
Właściwości
-
injectionPoint
ciąg znaków opcjonalny
Wartość domyślna to: "self.__WB_MANIFEST"
Ciąg znaków do znalezienia w pliku
swSrc. Po znalezieniu zostanie on zastąpiony wygenerowanym plikiem manifestu wstępnego buforowania. -
swSrc
ciąg znaków
Ścieżka i nazwa pliku service worker, który będzie odczytywany podczas procesu kompilacji, względem bieżącego katalogu roboczego.
ManifestEntry
Właściwości
-
integralność,
ciąg znaków opcjonalny
-
wersja
ciąg znaków
-
URL
ciąg znaków
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Typ
funkcja
Parametry
-
manifestEntries
(ManifestEntry & object)[]
-
rozmiar
liczba
-
-
kompilacja,
unknown opcjonalny
Zwroty
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Właściwości
-
plik manifestu
(ManifestEntry & object)[]
-
rozmiar
liczba
-
-
ostrzeżenia
string[] opcjonalny
OptionalGlobDirectoryPartial
Właściwości
-
globDirectory
ciąg znaków opcjonalny
Lokalny katalog, z którym chcesz porównać
globPatterns. Ścieżka jest względna względem bieżącego katalogu.
RequiredGlobDirectoryPartial
Właściwości
-
globDirectory
ciąg znaków
Lokalny katalog, z którym chcesz porównać
globPatterns. Ścieżka jest względna względem bieżącego katalogu.
RequiredSWDestPartial
Właściwości
-
swDest
ciąg znaków
Ścieżka i nazwa pliku service worker, który zostanie utworzony w procesie kompilacji, względem bieżącego katalogu roboczego. Musi kończyć się na „.js”.
RuntimeCaching
Właściwości
-
witryna
Określa, w jaki sposób środowisko wykonawcze wygeneruje odpowiedź. Aby użyć jednego z wbudowanych
workbox-strategies, podaj jego nazwę, np.'NetworkFirst'. Może to być też funkcja wywołania zwrotnegoworkbox-core.RouteHandlerz niestandardową logiką odpowiedzi. -
method
HTTPMethod opcjonalny
Wartość domyślna to: „GET”
Metoda HTTP, do której ma być dopasowywany ruch. Wartość domyślna parametru
'GET'jest zwykle wystarczająca, chyba że musisz dopasować'POST','PUT'lub inny typ żądania. -
Opcje
obiekt opcjonalny
-
backgroundSync
obiekt opcjonalny
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-background-sync.BackgroundSyncPlugindo instancjiworkbox-strategiesskonfigurowanej whandler.-
nazwa
ciąg znaków
-
Opcje
QueueOptions opcjonalny
-
-
broadcastUpdate
obiekt opcjonalny
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-broadcast-update.BroadcastUpdatePlugindo instancjiworkbox-strategiesskonfigurowanej whandler.-
channelName
ciąg znaków opcjonalny
-
-
cacheName
ciąg znaków opcjonalny
Jeśli ta wartość jest podana, ustawi właściwość
cacheNameelementuworkbox-strategiesskonfigurowanego w parametrzehandler. -
cacheableResponse
CacheableResponseOptions opcjonalny
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-cacheable-response.CacheableResponsePlugindoworkbox-strategiesskonfigurowanego whandler. -
wygaśnięcie,
ExpirationPluginOptions opcjonalnie
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-expiration.ExpirationPlugindoworkbox-strategiesskonfigurowanego whandler. -
fetchOptions
RequestInit opcjonalny
Skonfigurowanie tej opcji spowoduje przekazanie wartości
fetchOptionsdoworkbox-strategiesskonfigurowanego whandler. -
matchOptions
CacheQueryOptions opcjonalne
Skonfigurowanie tej opcji spowoduje przekazanie wartości
matchOptionsdoworkbox-strategiesskonfigurowanego whandler. -
networkTimeoutSeconds
number opcjonalny
Jeśli ta wartość jest podana, ustawi właściwość
networkTimeoutSecondselementuworkbox-strategiesskonfigurowanego w parametrzehandler. Pamiętaj, że tylko'NetworkFirst'i'NetworkOnly'obsługująnetworkTimeoutSeconds. -
wtyczki,
WorkboxPlugin[] opcjonalny
Skonfigurowanie tej opcji umożliwia używanie co najmniej 1 wtyczki Workbox, która nie ma opcji „skrótu” (np.
expirationw przypadkuworkbox-expiration.ExpirationPlugin). Wtyczki podane w tym miejscu zostaną dodane doworkbox-strategiesskonfigurowanego whandler. -
precacheFallback
obiekt opcjonalny
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-precaching.PrecacheFallbackPlugindoworkbox-strategiesskonfigurowanego whandler.-
fallbackURL
ciąg znaków
-
-
rangeRequests
wartość logiczna opcjonalna
Włączenie tej opcji spowoduje dodanie instancji
workbox-range-requests.RangeRequestsPlugindoworkbox-strategiesskonfigurowanego whandler.
-
-
urlPattern
string | RegExp | RouteMatchCallback
To kryterium dopasowania określa, czy skonfigurowany moduł obsługi ma generować odpowiedź na żądania, które nie pasują do żadnego z wcześniej zapisanych w pamięci podręcznej adresów URL. Jeśli zdefiniowanych jest wiele tras
RuntimeCaching, to pierwsza, którejurlPatternpasuje, będzie tą, która odpowie.Ta wartość jest bezpośrednio powiązana z pierwszym parametrem przekazywanym do funkcji
workbox-routing.registerRoute. Aby uzyskać największą elastyczność, zalecamy użycie funkcjiworkbox-core.RouteMatchCallback.
StrategyName
Typ wyliczeniowy
„CacheFirst”
„CacheOnly”
„NetworkFirst”
„NetworkOnly”
„StaleWhileRevalidate”
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Właściwości
-
importScriptsViaChunks
string[] opcjonalny
Co najmniej 1 nazwa fragmentu webpacka. Treść tych fragmentów zostanie uwzględniona w wygenerowanym procesie roboczym usługi za pomocą wywołania
importScripts(). -
swDest
ciąg znaków opcjonalny
Wartość domyślna to: "service-worker.js"
Nazwa zasobu pliku service worker utworzonego przez tę wtyczkę.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Właściwości
-
compileSrc
wartość logiczna opcjonalna
Wartość domyślna to true.
Jeśli wybierzesz
true(domyślnie), plikswSrczostanie skompilowany przez webpack. Gdyfalse, kompilacja nie nastąpi (i nie będzie można użyćwebpackCompilationPlugins). Ustaw wartośćfalse, jeśli chcesz wstrzyknąć manifest do np. pliku JSON. -
swDest
ciąg znaków opcjonalny
Nazwa pliku service worker, który zostanie utworzony przez ten plugin. Jeśli go pominiesz, nazwa będzie oparta na nazwie
swSrc. -
webpackCompilationPlugins
any[] opcjonalny
Opcjonalne wtyczki
webpack, które będą używane podczas kompilowania pliku wejściowegoswSrc. Obowiązuje tylko wtedy, gdycompileSrcma wartośćtrue.
WebpackPartial
Właściwości
-
kawałki,
string[] opcjonalny
Nazwy co najmniej 1 fragmentu, którego odpowiednie pliki wyjściowe mają być uwzględnione w manifestie pamięci podręcznej.
-
wyklucz
(string | RegExp | function)[] opcjonalny
Co najmniej 1 specyfikator używany do wykluczania zasobów z pliku manifestu pamięci podręcznej. Jest on interpretowany zgodnie z tymi samymi zasadami co standardowa opcja
excludewwebpack. Jeśli nie podasz żadnej opcji, domyślna wartość to[/\.map$/, /^manifest.*\.js$]. -
excludeChunks
string[] opcjonalny
Nazwy co najmniej 1 fragmentu, którego odpowiednie pliki wyjściowe mają zostać wykluczone z manifestu pamięci podręcznej.
-
uwzględnij
(string | RegExp | function)[] opcjonalny
Co najmniej 1 specyfikator używany do uwzględniania komponentów w manifeście pamięci podręcznej. Jest on interpretowany zgodnie z tymi samymi zasadami co standardowa opcja
includewwebpack. -
tryb
ciąg znaków opcjonalny
Jeśli ustawisz wartość „production”, zostanie wygenerowany zoptymalizowany pakiet service workera, który nie będzie zawierać informacji do debugowania. Jeśli nie zostanie tu wyraźnie skonfigurowana, użyta zostanie wartość
modeskonfigurowana w bieżącej kompilacjiwebpack.
Metody
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Spowoduje to skopiowanie zestawu bibliotek środowiska wykonawczego używanych przez Workbox do katalogu lokalnego, który powinien być wdrażany razem z plikiem service worker.
Zamiast wdrażać te lokalne kopie, możesz użyć Workboxa z oficjalnego adresu URL sieci CDN.
Ta metoda jest udostępniana deweloperom korzystającym z workbox-build.injectManifest, którzy wolą nie używać kopii Workbox w CDN. Deweloperzy korzystający z workbox-build.generateSW nie muszą jawnie wywoływać tej metody.
Parametry
-
destDirectory
ciąg znaków
Ścieżka do katalogu nadrzędnego, w którym zostanie utworzony nowy katalog bibliotek.
Zwroty
-
Promise<string>
Nazwa nowo utworzonego katalogu.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Ta metoda tworzy listę adresów URL do wstępnego buforowania, zwaną „manifestem wstępnego buforowania”, na podstawie podanych przez Ciebie opcji.
Przyjmuje też dodatkowe opcje, które konfigurują działanie service workera, np. runtimeCaching reguły, których powinien używać.
Na podstawie manifestu wstępnego buforowania i dodatkowej konfiguracji zapisuje na dysku gotowy do użycia plik instancji roboczej w lokalizacji 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: '...',
});
Parametry
-
konfiguracja
Zwroty
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Ta metoda zwraca listę adresów URL do wstępnego buforowania, zwaną „manifestem wstępnego buforowania”, wraz ze szczegółami dotyczącymi liczby wpisów i ich rozmiaru na podstawie podanych przez Ciebie opcji.
// 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: ...,
});
Parametry
-
konfiguracja
Zwroty
-
Promise<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Parametry
-
moduleName
ciąg znaków
-
buildType
BuildType
Zwroty
-
ciąg znaków
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Ta metoda tworzy listę adresów URL do wstępnego buforowania, zwaną „manifestem wstępnego buforowania”, na podstawie podanych przez Ciebie opcji.
Manifest jest wstrzykiwany do pliku swSrc, a ciąg zastępczy injectionPoint określa, gdzie w pliku ma się on znajdować.
Ostateczny plik service worker z wstrzykniętym manifestem jest zapisywany na dysku w lokalizacji swDest.
Ta metoda nie kompiluje ani nie łączy pliku swSrc, a tylko wstawia 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: '...',
});
Parametry
-
konfiguracja
Zwroty
-
Promise<BuildResult>