Moduł workbox-build
integruje się z procesem kompilacji opartym na węzłach i może wygenerować cały skrypt service worker lub po prostu listę zasobów do wstępnego buforowania, które można wykorzystać w istniejącym mechanizmie Service Worker.
Większość deweloperów używa 2 trybów generateSW
i injectManifest
. Odpowiedzi na poniższe pytania pomogą Ci wybrać odpowiedni tryb i konfigurację.
Który tryb wybrać
generateSW
Tryb generateSW
tworzy dla Ciebie plik skryptu service worker dostosowany za pomocą opcji konfiguracji i zapisuje go na dysku.
Kiedy używać generateSW
- Chcesz buforować pliki.
- Nie ma potrzeby tworzenia pamięci podręcznej środowiska wykonawczego.
Kiedy NIE używać generateSW
- Chcesz użyć innych funkcji skryptu Service Worker (np. Web Push).
- Chcesz zaimportować dodatkowe skrypty lub dodać dodatkowe funkcje logiczne niestandardowych strategii buforowania.
injectManifest
Tryb injectManifest
wygeneruje listę adresów URL do wstępnego buforowania i dodaje plik manifestu precache do istniejącego pliku skryptu service worker. W przeciwnym razie plik pozostanie bez zmian.
Kiedy używać injectManifest
- Chcesz mieć większą kontrolę nad skryptem service worker.
- Chcesz buforować pliki.
- Musisz dostosować trasy i strategie.
- Chcesz używać skryptu service worker z innymi funkcjami platformy (np. Web Push).
Kiedy NIE używać injectManifest
- Chcesz dodać skrypt service worker do swojej witryny?
Tryb generateSW
Trybu generateSW
możesz używać w skrypcie kompilacji opartym na węzłach, korzystając z najpopularniejszych opcji konfiguracji, na przykład:
// 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 skryptu service worker z konfiguracją wstępnego buforowania dla wszystkich plików pobranych przez konfigurację oraz podanych reguł buforowania w czasie działania.
Pełny zestaw opcji konfiguracyjnych można znaleźć w dokumentacji referencyjnej.
Tryb injectManifest
Trybu injectManifest
możesz używać w skrypcie kompilacji opartym na węzłach, korzystając z najpopularniejszych opcji konfiguracji, na przykład:
// 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 pliku manifestu precache na podstawie plików zebranych przez konfigurację i wstrzyknięcie go do istniejącego pliku skryptu service worker.
Pełny zestaw opcji konfiguracyjnych można znaleźć w dokumentacji referencyjnej.
Dodatkowe tryby
Oczekujemy, że aplikacje generateSW
lub injectManifest
spełnią wymagania większości deweloperów. workbox-build
obsługuje jednak jeszcze jeden tryb, który może się sprawdzić w określonych przypadkach.
Tryb getManifest
Ten sposób działania jest podobny do trybu injectManifest
, ale zamiast dodania pliku manifestu do źródłowego pliku skryptu service worker zwraca tablicę wpisów w pliku manifestu wraz z informacjami o liczbie wpisów i całkowitym rozmiarze.
Trybu injectManifest
możesz używać w skrypcie kompilacji opartym na węzłach, korzystając z najpopularniejszych opcji konfiguracji, na przykład:
// 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 konfiguracyjnych można znaleźć w dokumentacji referencyjnej.
Typy
BasePartial
Właściwości
-
additionalManifestEntries
(ciąg znaków | ManifestEntry)[] opcjonalnie
Lista wpisów do wczytania w pamięci podręcznej, wraz z wpisami generowanymi w ramach konfiguracji kompilacji.
-
dontCacheBustURLsMatching
Wyrażenie regularne opcjonalne
Przyjmujemy, że zasoby pasujące do tych wartości mają unikalne wersje przypisane do ich adresu URL i są wykluczone z typowego pomijania pamięci podręcznej HTTP podczas wypełniania pamięci podręcznej. Chociaż nie jest to wymagane, zalecamy, aby jeśli obecny proces kompilacji już wstawiał wartość
[hash]
do każdej nazwy pliku, musisz podać wyrażenie regularne, które to wykryje, ponieważ zmniejszy to przepustowość wykorzystywaną podczas wstępnego buforowania. -
manifestTransforms
ManifestTransform[] opcjonalny
Co najmniej 1 funkcja, która zostanie zastosowana sekwencyjnie do wygenerowanego pliku manifestu. Jeśli podano też wartości
modifyURLPrefix
lubdontCacheBustURLsMatching
, najpierw zostaną zastosowane odpowiadające im przekształcenia. -
maximumFileSizeToCacheInBytes
Liczba opcjonalnie
Wartość domyślna to 2097152.
Na podstawie tej wartości można określić maksymalny rozmiar plików, które będą wstępnie przechowywane w pamięci podręcznej. Zapobiega to przypadkowemu wyświetlaniu bardzo dużych plików, które mogłyby przypadkowo pasować do jednego z Twoich wzorców.
-
modifyURLPrefix
obiekt opcjonalnie
Ciąg mapowania obiektu poprzedza prefiksy zastępczego ciągu znaków. Można go użyć do np. usunięcia lub dodania prefiksu ścieżki z wpisu w pliku manifestu, jeśli Twoja konfiguracja hostingu WWW nie jest zgodna z konfiguracją lokalnego systemu plików. Jako alternatywę o większej elastyczności możesz użyć opcji
manifestTransforms
i udostępnić funkcję, która modyfikuje wpisy w pliku manifestu za pomocą dowolnej podanej logiki.Przykład użycia:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Typ
Pomiń <GetManifestResult"manifestEntries"
> i obiekt
Właściwości
-
filePaths
string[]
GeneratePartial
Właściwości
-
babelPresetEnvTargets
string[] opcjonalny
Wartość domyślna to: ["chrome >= 56"].
Cele, które mają być przekazywane do
babel-preset-env
podczas transpilacji pakietu skryptu service worker. -
cacheId
ciąg znaków opcjonalny
Opcjonalny identyfikator dołączany do nazw pamięci podręcznej. Jest to przydatne przede wszystkim w przypadku programowania lokalnego, w którym wiele witryn może być udostępnianych z tego samego źródła
http://localhost:port
. -
cleanupOutdatedCaches
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
Określa, czy Workbox ma próbować identyfikować i usuwać pamięć podręczną utworzone przez starsze, niezgodne wersje.
-
clientsClaim
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
Określa, czy skrypt service worker powinien rozpocząć kontrolowanie istniejących klientów zaraz po aktywacji.
-
directoryIndex
ciąg znaków opcjonalny
Jeśli żądanie nawigacji dla adresu URL z końcówką
/
nie pasuje do wstępnie zapisanego adresu URL, ta wartość zostaje dodana do adresu URL i sprawdzana pod kątem zgodności z pamięci podręcznej. W tym polu powinien być ustawiony adres używany przez serwer WWW na potrzeby indeksu katalogu. -
disableDevLogs
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
-
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 w pamięci podręcznej. Jest to przydatne, gdy użytkownicy mogą prosić o adresy URL zawierające na przykład parametry adresu URL służące do śledzenia źródła ruchu. Jeśli nie podasz żadnej wartości, domyślną wartością będzie
[/^utm_/, /^fbclid$/]
. -
importScripts
string[] opcjonalny
Lista plików JavaScript, które należy przekazać do
importScripts()
w wygenerowanym pliku skryptu service worker. Jest to przydatne, gdy chcesz pozwolić Workbox na utworzenie pliku skryptu service worker najwyższego poziomu, ale chcesz dołączyć dodatkowy kod, na przykład detektor zdarzeń push. -
inlineWorkboxRuntime
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
Określa, czy kod środowiska wykonawczego dla biblioteki Workbox ma być zawarty w skryptach service worker najwyższego poziomu czy podzielony na oddzielny plik, który trzeba wdrożyć razem z tym mechanizmem. Oddzielenie środowiska wykonawczego oznacza, że użytkownicy nie będą musieli ponownie pobierać kodu Workbox za każdym razem, gdy zmieni się skrypt service worker najwyższego poziomu.
-
tryb
ciąg znaków opcjonalny
Wartość domyślna to "production".
Jeśli ustawiona jest wartość „production”, zostanie utworzony zoptymalizowany pakiet skryptu service worker bez danych debugowania. Jeśli nie skonfigurujesz go tutaj, używana będzie wartość
process.env.NODE_ENV
, a w przeciwnym razie zostanie użyta wartość'production'
. -
ciąg znaków opcjonalny
Wartość domyślna to null.
Jeśli określisz to ustawienie, wszystkie żądania nawigacji dla adresów URL, które nie są wstępnie zapisane w pamięci podręcznej, będą realizowane za pomocą kodu HTML podanego pod podanym adresem URL. Musisz przekazać adres URL dokumentu HTML wymienionego w pliku manifestu precache. Ta wskazówka ma być używana w scenariuszu aplikacji jednostronicowej, w którym wszystkie elementy nawigacyjne mają używać standardowego kodu HTML App Shell.
-
RegExp[] opcjonalny
Opcjonalna tablica wyrażeń regularnych ograniczająca adresy URL, do których ma zastosowanie skonfigurowane działanie
navigateFallback
. Jest to przydatne, gdy tylko część adresów URL witryny powinna być traktowana jak część aplikacji jednostronicowej. Jeśli skonfigurowano zarównonavigateFallbackDenylist
, jak inavigateFallbackAllowlist
, pierwszeństwo ma lista odrzuconych.Uwaga: te wyrażenia regularne mogą być oceniane w odniesieniu do każdego docelowego adresu URL podczas nawigacji. Unikaj złożonych wyrażeń regularnych, ponieważ w przeciwnym razie użytkownicy mogą zauważyć opóźnienia w poruszaniu się po witrynie.
-
RegExp[] opcjonalny
Opcjonalna tablica wyrażeń regularnych ograniczająca adresy URL, do których ma zastosowanie skonfigurowane działanie
navigateFallback
. Jest to przydatne, gdy tylko podzbiór adresów URL witryny powinien być traktowany jako część aplikacji jednostronicowej. Jeśli skonfigurowano zarównonavigateFallbackDenylist
, jak inavigateFallbackAllowlist
, ma pierwszeństwo przed listą odrzuconych.Uwaga: te wyrażenia regularne mogą być oceniane w odniesieniu do każdego docelowego adresu URL podczas nawigacji. Unikaj złożonych wyrażeń regularnych, ponieważ w przeciwnym razie użytkownicy mogą zauważyć opóźnienia w poruszaniu się po witrynie.
-
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
Określa, czy włączyć wstępne wczytywanie nawigacji w wygenerowanym mechanizmie Service Worker. Jeśli zasada ma wartość Prawda, musisz też używać
runtimeCaching
, aby skonfigurować odpowiednią strategię reagowania, która będzie dopasowywana do żądań nawigacji, i wykorzystać wstępnie wczytywaną odpowiedź. -
offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions opcjonalnie
Wartość domyślna to false (fałsz).
Określa, czy chcesz obsługiwać Google Analytics offline. Gdy
true
, wywołanie metodyinitialize()
serweraworkbox-google-analytics
zostanie dodane do wygenerowanego skryptu service worker. Gdy ustawisz wartośćObject
, obiekt będzie przekazywany do wywołaniainitialize()
, co umożliwi Ci dostosowanie działania. -
runtimeCaching
RuntimeCaching[] opcjonalny
Gdy używasz narzędzi do kompilacji Workbox do generowania skryptu service worker, możesz określić co najmniej 1 konfigurację buforowania środowiska wykonawczego. Są one następnie przekształcane w wywołania
workbox-routing.registerRoute
za pomocą zdefiniowanej przez Ciebie konfiguracji dopasowania i obsługi.Wszystkie opcje znajdziesz w dokumentacji
workbox-build.RuntimeCaching
. Przykład poniżej przedstawia typową konfigurację ze zdefiniowanymi 2 trasami środowiska wykonawczego: -
skipWaiting
wartość logiczna opcjonalna
Wartość domyślna to false (fałsz).
Określa, czy dodać bezwarunkowe wywołanie do
skipWaiting()
do wygenerowanego skryptu service worker. Jeśli ustawiona jest wartośćfalse
, zamiast tego zostanie dodany detektormessage
, który umożliwi stronom klienta wywoływanieskipWaiting()
przez wywołaniepostMessage({type: 'SKIP_WAITING'})
w oczekującym module service worker. -
mapa źródeł
wartość logiczna opcjonalna
Wartość domyślna to true.
Określa, czy utworzyć mapę źródeł dla wygenerowanych plików skryptu service worker.
GenerateSWOptions
Typ
GetManifestOptions
Typ
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 precache stosowane są dowiązania symboliczne. Więcej informacji znajdziesz w definicji właściwości
follow
w dokumentacjiglob
. -
globIgnores
string[] opcjonalny
Wartość domyślna to ["**\/node_modules\/**\/*"].
Zbiór wzorców pasujących do plików, które mają być zawsze wykluczane podczas generowania pliku manifestu precache. Więcej informacji znajdziesz w definicji właściwości
ignore
w dokumentacjiglob
. -
globPatterns
string[] opcjonalny
Wartość domyślna to ["**\/*.{js,wasm,css,html}"]
Pliki pasujące do dowolnego z tych wzorców zostaną uwzględnione w pliku manifestu Precache. Więcej informacji znajdziesz w przewodniku po
glob
. -
globStrict
wartość logiczna opcjonalna
Wartość domyślna to true.
Jeśli ma wartość prawda, błąd odczytu katalogu podczas generowania pliku manifestu precached spowoduje niepowodzenie kompilacji. W przypadku wartości false (fałsz) katalog powodujący problemy zostanie pominięty. Więcej informacji znajdziesz w definicji pola
strict
w dokumentacjiglob
. -
templatedURLs
obiekt opcjonalnie
Jeśli URL jest renderowany na podstawie logiki po stronie serwera, jego zawartość może być zależna od wielu plików lub od innej niepowtarzalnej wartości ciągu znaków. Klucze w tym obiekcie to URL-e renderowane przez serwer. Jeśli wartości mają postać tablicy ciągów znaków, będą interpretowane jako wzorce
glob
, a zawartość plików pasujących do wzorców zostanie użyta do utworzenia niepowtarzalnej wersji adresu URL. Jeśli użyjesz jej z pojedynczym ciągiem znaków, zostanie ona zinterpretowana jako unikalne informacje o obsłudze wersji wygenerowane 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 przez wygenerowany plik manifestu Precache. -
swSrc
string,
Ścieżka i nazwa pliku skryptu service worker, które będą odczytywane podczas procesu kompilacji, w odniesieniu do bieżącego katalogu roboczego.
ManifestEntry
Właściwości
-
integralność
ciąg znaków opcjonalny
-
wersja
string,
-
URL
string,
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Typ
funkcja
Parametry
-
manifestEntries
(ManifestEntry i obiekt)[]
-
rozmiar
Liczba
-
-
kompilacja
nieznany opcjonalny
Zwroty
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Właściwości
-
plik manifestu
(ManifestEntry i obiekt)[]
-
rozmiar
Liczba
-
-
ostrzeżenia
string[] opcjonalny
OptionalGlobDirectoryPartial
Właściwości
-
globDirectory
ciąg znaków opcjonalny
Katalog lokalny, do którego chcesz dopasować
globPatterns
. Ścieżka jest względna wobec bieżącego katalogu.
RequiredGlobDirectoryPartial
Właściwości
-
globDirectory
string,
Katalog lokalny, do którego chcesz dopasować
globPatterns
. Ścieżka jest względna wobec bieżącego katalogu.
RequiredSWDestPartial
Właściwości
-
swDest
string,
Ścieżka i nazwa pliku skryptu service worker, który zostanie utworzony przez proces kompilacji względem bieżącego katalogu roboczego. Musi kończyć się na „.js”.
RuntimeCaching
Właściwości
-
moduł obsługi
Określa sposób generowania odpowiedzi przez trasę środowiska wykonawczego. Aby użyć wbudowanej funkcji
workbox-strategies
, podaj jej nazwę, np.'NetworkFirst'
. Możesz też użyć funkcji wywołania zwrotnegoworkbox-core.RouteHandler
z niestandardową logiką odpowiedzi. -
method
HTTPMethod opcjonalny
Wartość domyślna: "GET"
Metoda HTTP, która ma być sprawdzana. Wartość domyślna
'GET'
jest zwykle wystarczająca, chyba że musisz jednoznacznie dopasować'POST'
,'PUT'
lub inny typ żądania. -
Opcje
obiekt opcjonalnie
-
backgroundSync
obiekt opcjonalnie
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-background-sync.BackgroundSyncPlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
.-
nazwa
string,
-
Opcje
Opcjonalne QueueOptions
-
-
broadcastUpdate
obiekt opcjonalnie
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-broadcast-update.BroadcastUpdatePlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
.-
channelName
ciąg znaków opcjonalny
-
-
cacheName
ciąg znaków opcjonalny
Jeśli została podana, spowoduje to ustawienie właściwości
cacheName
obiektuworkbox-strategies
skonfigurowanego whandler
. -
cacheableResponse
Opcjonalnie CacheableResponseOptions
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-cacheable-response.CacheableResponsePlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
. -
expiration
Opcjonalny ExpirationPluginOptions.
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-expiration.ExpirationPlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
. -
fetchOptions
RequestInit opcjonalnie
Skonfigurowanie tej opcji spowoduje przekazanie wartości
fetchOptions
do parametruworkbox-strategies
skonfigurowanego whandler
. -
matchOptions
CacheQueryOptions opcjonalnie
Skonfigurowanie tej opcji spowoduje przekazanie wartości
matchOptions
do parametruworkbox-strategies
skonfigurowanego whandler
. -
networkTimeoutSeconds
Liczba opcjonalnie
Jeśli została podana, spowoduje to ustawienie właściwości
networkTimeoutSeconds
obiektuworkbox-strategies
skonfigurowanego whandler
. Pamiętaj, że tylko'NetworkFirst'
i'NetworkOnly'
obsługująnetworkTimeoutSeconds
. -
wtyczki
WorkboxPlugin[] opcjonalny
Skonfigurowanie tej opcji umożliwia korzystanie z co najmniej 1 wtyczki Workbox, która nie ma opcji skrótu (np.
expiration
wworkbox-expiration.ExpirationPlugin
). Wtyczki, które tu dodasz, zostaną dodane do modułuworkbox-strategies
skonfigurowanego whandler
. -
precacheFallback
obiekt opcjonalnie
Skonfigurowanie tej opcji spowoduje dodanie instancji
workbox-precaching.PrecacheFallbackPlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
.-
fallbackURL
string,
-
-
rangeRequests
wartość logiczna opcjonalna
Włączenie tej opcji spowoduje dodanie instancji
workbox-range-requests.RangeRequestsPlugin
do obiektuworkbox-strategies
skonfigurowanego w zadaniuhandler
.
-
-
urlPattern
string | RegExp | RouteMatchCallback
To kryterium dopasowania określa, czy skonfigurowany moduł obsługi będzie generował odpowiedź na żądania, które nie pasują do żadnego ze wstępnie zapisanych adresów URL. Jeśli zdefiniowano wiele tras
RuntimeCaching
, odpowiedzi odpowie pierwsza z nich, której odpowiada parametrurlPattern
.Ta wartość jest mapowana bezpośrednio na pierwszy parametr przekazany do
workbox-routing.registerRoute
. Aby uzyskać największą elastyczność, zalecamy użycie funkcjiworkbox-core.RouteMatchCallback
.
StrategyName
Typ wyliczeniowy
WebpackGenerateSWOptions
Typ
BasePartial i WebpackPartial, GeneratePartial (Generowanie części) oraz WebpackGenerateSWPartial
WebpackGenerateSWPartial
Właściwości
-
importScriptsViaChunks
string[] opcjonalny
Co najmniej jedna nazwa fragmentu pakietu internetowego. Zawartość tych fragmentów zostanie włączona do wygenerowanego skryptu service worker przez wywołanie metody
importScripts()
. -
swDest
ciąg znaków opcjonalny
Wartość domyślna to "service-worker.js".
Nazwa zasobu pliku skryptu service worker utworzonego przez tę wtyczkę.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Właściwości
-
compileSrc
wartość logiczna opcjonalna
Wartość domyślna to true.
Gdy wybierzesz
true
(ustawienie domyślne), plikswSrc
zostanie skompilowany przez pakiet internetowy. Jeślifalse
, kompilacja nie nastąpi (i nie będzie można użyć taguwebpackCompilationPlugins
). Ustaw nafalse
, jeśli chcesz wstrzyknąć plik manifestu, np. do pliku JSON. -
swDest
ciąg znaków opcjonalny
Nazwa zasobu pliku skryptu service worker, który zostanie utworzony przez tę wtyczkę. Jeśli pominiesz ten parametr, nazwa zostanie utworzona na podstawie nazwy
swSrc
. -
webpackCompilationPlugins
any[] opcjonalny
Opcjonalne wtyczki
webpack
, które zostaną użyte podczas kompilowania pliku wejściowegoswSrc
. Ma zastosowanie tylko wtedy, gdycompileSrc
ma wartośćtrue
.
WebpackPartial
Właściwości
-
fragmenty
string[] opcjonalny
Co najmniej jedna nazwa fragmentu, której odpowiednie pliki wyjściowe powinny być uwzględnione w pliku manifestu precache.
-
wyklucz
(ciąg znaków | Wyrażenie regularne | funkcja)[] opcjonalnie
Co najmniej 1 specyfikator użyty do wykluczenia zasobów z pliku manifestu Precache. Jest to interpretowane zgodnie z tymi samymi regułami co standardowa opcja
exclude
parametruwebpack
. Jeśli nie podasz żadnej wartości, domyślną wartością będzie[/\.map$/, /^manifest.*\.js$]
. -
excludeChunks
string[] opcjonalny
Co najmniej jedna nazwa fragmentu, której odpowiednie pliki wyjściowe powinny być wykluczone z pliku manifestu precache.
-
uwzględnij
(ciąg znaków | Wyrażenie regularne | funkcja)[] opcjonalnie
Co najmniej 1 specyfikator służący do dołączania zasobów do pliku manifestu precache. Jest to interpretowane zgodnie z tymi samymi regułami co standardowa opcja
include
parametruwebpack
. -
tryb
ciąg znaków opcjonalny
Jeśli ustawiona jest wartość „production”, zostanie utworzony zoptymalizowany pakiet skryptu service worker bez danych debugowania. Jeśli nie skonfigurujesz tutaj wyraźnie wartości
mode
, użyjemy wartościmode
skonfigurowanej w bieżącej kompilacjiwebpack
.
Metody
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Spowoduje to skopiowanie zestawu bibliotek środowiska wykonawczego używanych przez Workbox do katalogu lokalnego, które powinny być wdrożone razem z plikiem skryptu service worker.
Zamiast wdrażać te kopie lokalne, możesz użyć skrzynki roboczej z oficjalnego adresu URL CDN.
Z tej metody mogą skorzystać deweloperzy korzystający z workbox-build.injectManifest
, którzy nie chcą korzystać z kopii CDN Workbox. Deweloperzy używający workbox-build.generateSW
nie muszą w jasny sposób wywoływać tej metody.
Parametry
-
destDirectory
string,
Ścieżka do katalogu nadrzędnego, w którym zostanie utworzony nowy katalog bibliotek.
Zwroty
-
Obietnica<string>
Nazwa nowo utworzonego katalogu.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
Ta metoda tworzy listę adresów URL do wstępnego buforowania (tzw. „manifest precache”) na podstawie podanych opcji.
Wykorzystuje też dodatkowe opcje, które konfiguruje działanie skryptu service worker, takie jak wszystkie reguły runtimeCaching
, których ma używać.
Na podstawie pliku manifestu precache i dodatkowej konfiguracji zapisuje gotowy do użycia plik skryptu service worker na dysku w miejscu 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,
)
Ta metoda zwraca listę adresów URL do pamięci podręcznej (tzw. „manifest precache”) wraz ze szczegółowymi informacjami o liczbie wpisów i ich rozmiarze w zależności od wybranych 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,
)
Parametry
-
moduleName
string,
-
buildType
BuildType
Zwroty
-
string,
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Ta metoda tworzy listę adresów URL do wstępnego buforowania (tzw. „manifest precache”) na podstawie podanych opcji.
Plik manifestu jest wstrzykiwany do pliku swSrc
, a ciąg zastępczy injectionPoint
określa miejsce w pliku manifestu.
Końcowy plik skryptu service worker z wstrzykniętym plikiem manifestu jest zapisywany na dysku pod adresem swDest
.
Ta metoda nie skompiluje ani nie połączy pliku swSrc
, a tylko wstrzykiwać plik manifestu.
// 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>