Moduł workbox-build
integruje się z procesem kompilacji opartym na Nodzie i może wygenerować cały moduł service workera lub tylko listę zasobów do wstępnego buforowania, które można wykorzystać w istniejącym module service workera.
Dwa tryby, z których korzysta większość deweloperów, to generateSW
i injectManifest
. Odpowiedzi na te pytania pomogą Ci wybrać odpowiedni tryb i konfigurację.
Którego trybu używać
generateSW
Tryb generateSW
tworzy dla Ciebie plik usługi, dostosowując go za pomocą opcji konfiguracji, i zapisuje go na dysku.
Kiedy używać generateSW
- chcesz wstępnie zapisać pliki.
- masz proste potrzeby dotyczące buforowania w czasie wykonywania;
Kiedy nie używać generateSW
- Chcesz korzystać z innych funkcji Service Worker (np. Web Push).
- Chcesz zaimportować dodatkowe skrypty lub dodać dodatkową logikę dla niestandardowych strategii buforowania.
injectManifest
Tryb injectManifest
wygeneruje listę adresów URL do wstępnego buforowania i doda manifest wstępnego buforowania do istniejącego pliku usługi. W przeciwnym razie plik pozostanie bez zmian.
Kiedy używać injectManifest
- Chcesz mieć większą kontrolę nad usługą.
- chcesz wstępnie zapisać pliki.
- Musisz dostosować kierowanie i strategie.
- Chcesz używać swojego serwisu workera z innymi funkcjami platformy (np. Web Push).
Kiedy nie używać injectManifest
- Chcesz dowiedzieć się, jak najłatwiej dodać do witryny usługę działającą w tle.
Tryb generateSW
Tryb generateSW
możesz używać w ramach skryptu kompilacji opartej na węzłach, korzystając z najczęstszych opcji konfiguracji, takich jak:
// 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 instancji roboczej usługi z uprzednim buforowaniem wszystkich plików wybranych przez konfigurację oraz podanych reguł buforowania w czasie działania.
Pełny zestaw opcji konfiguracji znajdziesz w dokumentacji referencyjnej.
Tryb injectManifest
Tryb injectManifest
możesz używać w ramach skryptu kompilacji opartej na węzłach, korzystając z najczęstszych opcji konfiguracji, takich jak:
// 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 na podstawie plików wybranych przez konfigurację i wstrzyknięcie go do istniejącego pliku usługi roboczej.
Pełny zestaw opcji konfiguracji znajdziesz w dokumentacji referencyjnej.
Dodatkowe tryby
Spodziewamy się, że generateSW
lub injectManifest
spełni 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.
Tryb getManifest
Pod względem koncepcyjnym jest to podobne do trybu injectManifest
, ale zamiast dodawania pliku manifestu do pliku źródłowego serwisu workera zwraca tablicę wpisów w pliku manifestu wraz z informacjami o liczbie wpisów i ich łącznym rozmiarze.
Tryb injectManifest
możesz używać w ramach skryptu kompilacji opartej na węzłach, korzystając z najczęstszych opcji konfiguracji, takich jak:
// 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 referencyjnej.
Typy
BasePartial
Właściwości
-
additionalManifestEntries
(string | ManifestEntry)[] opcjonalnie
lista wpisów do wstępnego zcache’owania, a także wpisów wygenerowanych w ramach konfiguracji kompilacji;
-
dontCacheBustURLsMatching
RegExp opcjonalny
Zakłada się, że zasoby, które pasują do tego wzorca, mają unikalną wersję określoną za pomocą ich adresu URL i są wykluczone z normalnego burzenia pamięci podręcznej HTTP, które jest wykonywane podczas wypełniania pamięci podręcznej wstępnej. Chociaż nie jest to wymagane, jeśli istniejący proces kompilacji już wstawia wartość
[hash]
do nazwy każdego pliku, zalecamy podanie wyrażenia regularnego, które to wykryje, ponieważ pozwoli to zmniejszyć zużycie przepustowości podczas wstępnego przechowywania w pamięci podręcznej. -
manifestTransforms
ManifestTransform[] opcjonalnie
Co najmniej 1 funkcja, która zostanie zastosowana sekwencyjnie do wygenerowanego pliku manifestu. Jeśli określono też
modifyURLPrefix
lubdontCacheBustURLsMatching
, najpierw zostaną zastosowane odpowiednie przekształcenia. -
maximumFileSizeToCacheInBytes
number opcjonalny
Wartość domyślna: 2097152
Ta wartość może służyć do określenia maksymalnego rozmiaru plików, które zostaną zarchiwizowane. Zapobiega to przypadkowemu wstępnemu buforowaniu bardzo dużych plików, które mogłyby przypadkowo pasować do jednego z Twoich wzorów.
-
modifyURLPrefix
object opcjonalne
Obiekt mapujący ciągi znaków prefiksów na wartości ciągu znaków zastępczych. Możesz go użyć np. do usunięcia lub dodania prefiksu ścieżki z pliku manifestu, jeśli konfiguracja hostingu internetowego nie pasuje do konfiguracji lokalnego systemu plików. Jako alternatywę możesz użyć opcji
manifestTransforms
i podać funkcję, która modyfikuje wpisy w pliku manifestu za pomocą dowolnej podanej przez Ciebie 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[] opcjonalnie
Wartość domyślna: ["chrome >= 56"]
Cel, który ma zostać przekazany do
babel-preset-env
podczas transpilacji pakietu usługi. -
cacheId
string opcjonalny
Opcjonalny identyfikator dołączany do nazw pamięci podręcznej. Jest to przydatne przede wszystkim w przypadku lokalnego rozwoju, gdy wiele witryn może być obsługiwanych z tego samego źródła.
http://localhost:port
-
cleanupOutdatedCaches
wartość logiczna opcjonalna
Wartość domyślna: false.
Określa, czy Workbox ma próbować zidentyfikować i usunąć wszystkie pamięci podręczne utworzone przez starsze, niezgodne wersje.
-
clientsClaim
wartość logiczna opcjonalna
Wartość domyślna: false
Określ, czy usługa powinna zacząć kontrolować wszystkich dotychczasowych klientów od razu po aktywacji.
-
directoryIndex
string opcjonalny
Jeśli żądanie nawigacji dotyczące adresu URL kończącego się na
/
nie pasuje do adresu URL z poziomu pamięci podręcznej, do adresu URL zostanie dołączona ta wartość i sprawdzimy, czy pasuje ona do adresu URL z poziomu pamięci podręcznej. Powinien on odpowiadać ustawieniom serwera WWW w przypadku indeksu katalogu. -
disableDevLogs
wartość logiczna opcjonalna
Wartość domyślna: false.
-
ignoreURLParametersMatching
RegExp[] opcjonalny
Przed rozpoczęciem wyszukiwania dopasowania w pamięci podręcznej zostaną usunięte wszystkie nazwy parametrów wyszukiwania, które pasują do jednego z wyrażeń regularnych w tym tablicy. Jest to przydatne, jeśli użytkownicy mogą wysyłać żądania adresów URL zawierających np. parametry adresu URL używane do śledzenia źródła wizyt. Jeśli nie podasz żadnej opcji, domyślną wartością będzie
[/^utm_/, /^fbclid$/]
. -
importScripts
string[] opcjonalnie
Lista plików JavaScript, które należy przekazać do
importScripts()
w wygenerowanym pliku usługi. Jest to przydatne, gdy chcesz, aby Workbox utworzył plik service worker na najwyższym poziomie, ale chcesz też dodać do niego dodatkowy kod, np. odbiornik zdarzeń push. -
inlineWorkboxRuntime
wartość logiczna opcjonalna
Wartość domyślna: false.
Określ, czy kod runtime biblioteki Workbox ma być uwzględniony w usługowym workerze najwyższego poziomu, czy podzielony na oddzielny plik, który należy wdrożyć razem z usługowym workerem. Dzięki temu, że środowisko wykonawcze jest oddzielne, użytkownicy nie będą musieli ponownie pobierać kodu Workbox za każdym razem, gdy zmieni się worker usługi na najwyższym poziomie.
-
tryb
string opcjonalny
Wartość domyślna: „production”.
Jeśli ustawisz wartość „production”, zostanie wygenerowany zoptymalizowany pakiet usługi, który wyklucza informacje debugowania. Jeśli nie skonfigurujesz tego parametru, zostanie użyta wartość
process.env.NODE_ENV
, a jeśli nie,'production'
. -
string opcjonalny
Wartość domyślna: null.
Jeśli to pole jest zaznaczone, wszystkie żądania nawigacji dotyczące adresów URL, które nie są wcześniej przechowywane w pamięci podręcznej, będą realizowane za pomocą kodu HTML z podanego adresu URL. Musisz podać adres URL dokumentu HTML, który znajduje się w pliku manifestu domyślnego buforowania. Jest on przeznaczony do używania w sytuacji aplikacji jednostronicowej, w której chcesz, aby wszystkie elementy nawigacji używały wspólnego HTML w opakowaniu aplikacji.
-
RegExp[] opcjonalny
Opcjonalny tablica wyrażeń regularnych, która ogranicza zakres adresów URL, do których ma zastosowanie skonfigurowane zachowanie
navigateFallback
. Jest to przydatne, jeśli tylko podzbiór adresów URL w witrynie ma być traktowany jako część aplikacji jednostronicowej. Jeśli skonfigurujesz zarównonavigateFallbackDenylist
, jak inavigateFallbackAllowlist
, lista zaprzeczeń ma pierwszeństwo.Uwaga: podczas nawigacji te wyrażenia regularne mogą być oceniane na podstawie każdego adresu URL docelowego. Unikaj korzystania z złożonych wyrażeń regularnych, ponieważ może to spowodować opóźnienia w nawigacji po witrynie.
-
RegExp[] opcjonalny
Opcjonalny tablica wyrażeń regularnych, która ogranicza zakres adresów URL, do których ma zastosowanie skonfigurowane zachowanie
navigateFallback
. Jest to przydatne, jeśli tylko podzbiór adresów URL witryny ma być traktowany jako część aplikacji jednostronicowej. Jeśli obie opcjenavigateFallbackDenylist
inavigateFallbackAllowlist
są skonfigurowane, lista zaprzeczeń ma pierwszeństwo.Uwaga: podczas nawigacji te wyrażenia regularne mogą być oceniane na podstawie każdego adresu URL docelowego. Unikaj korzystania z złożonego wyrażenia regularnego, ponieważ może to spowodować opóźnienia w nawigacji po witrynie.
-
wartość logiczna opcjonalna
Wartość domyślna: false
Określa, czy w wygenerowanym serwisie workera ma być włączone przedwczytywanie nawigacji. Gdy ta opcja jest ustawiona na wartość true, musisz też użyć opcji
runtimeCaching
, aby skonfigurować odpowiednią strategię odpowiedzi, która będzie dopasowywać żądania nawigacji, i korzystać z wstępnie załadowanej odpowiedzi. -
offlineGoogleAnalytics
wartość logiczna | GoogleAnalyticsInitializeOptions opcjonalnie
Wartość domyślna: false.
Określa, czy uwzględnić obsługę Google Analytics offline. Gdy
true
, do wygenerowanego service workera zostanie dodany wywołanie funkcjiinitialize()
z poziomuworkbox-google-analytics
. Gdy ustawisz parametr naObject
, ten obiekt zostanie przekazany do wywołaniainitialize()
, co pozwoli Ci dostosować działanie. -
runtimeCaching
RuntimeCaching[] opcjonalne
Jeśli do generowania serwisu workera używasz narzędzi do kompilacji Workboxa, możesz określić co najmniej jedną konfigurację buforowania w czasie wykonywania. Następnie są one tłumaczone na wywołania
workbox-routing.registerRoute
przy użyciu zdefiniowanej przez Ciebie konfiguracji dopasowania i obsługi.Wszystkie opcje znajdziesz w dokumentacji
workbox-build.RuntimeCaching
. Przykład poniżej przedstawia typową konfigurację z 2 zdefiniowanymi ścieżkami w czasie wykonywania: -
skipWaiting
wartość logiczna opcjonalna
Wartość domyślna: false.
Określa, czy do wygenerowanego service workera ma zostać dodane bezwarunkowe wywołanie
skipWaiting()
. Jeślifalse
, zamiast tego zostanie dodany odbiorcamessage
, co pozwoli stronom klienta wywoływaćskipWaiting()
przez wywołaniepostMessage({type: 'SKIP_WAITING'})
w ramach oczekującego wątku usługi. -
sourcemap
wartość logiczna opcjonalna
Wartość domyślna: true.
Określa, czy należy utworzyć mapę źródeł dla wygenerowanych plików usługi skryptu.
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: true.
Określa, czy podczas generowania pliku manifestu pamięci podręcznej są śledzone skróty symboliczne. Więcej informacji znajdziesz w definicji
follow
w dokumentacji usługiglob
. -
globIgnores
string[] opcjonalnie
Wartość domyślna: ["**\/node_modules\/**\/*"]
Zestaw wzorów pasujących do plików, które mają być zawsze wykluczane podczas generowania pliku manifestu pamięci podręcznej. Więcej informacji znajdziesz w definicji
ignore
w dokumentacji usługiglob
. -
globPatterns
string[] opcjonalnie
Wartość domyślna: ["**\/*.{js,wasm,css,html}"]
Pliki zgodne z dowolnym z tych wzorów zostaną uwzględnione w pliku manifestu domyślnego buforowania. Więcej informacji znajdziesz w artykule
glob
. -
globStrict
wartość logiczna opcjonalna
Wartość domyślna: true.
Jeśli to pole ma wartość true, błąd podczas odczytu katalogu podczas generowania pliku z manifescją do wstępnego buforowania spowoduje niepowodzenie kompilacji. Jeśli ma wartość Fałsz, problemowy katalog zostanie pominięty. Więcej informacji znajdziesz w definicji
strict
w dokumentacji usługiglob
. -
templatedURLs
object opcjonalne
Jeśli adres URL jest renderowany na podstawie logiki po stronie serwera, jego zawartość może zależeć od wielu plików lub innej unikalnej wartości ciągu znaków. Klucze w tym obiekcie to adresy URL renderowane na serwerze. Jeśli wartości to tablica ciągów znaków, zostaną one zinterpretowane jako wzorce
glob
, a zawartość dowolnych plików pasujących do tych wzorów zostanie użyta do utworzenia unikalnego adresu URL. Jeśli zostanie użyty z jednym ciągiem znaków, zostanie zinterpretowany jako unikalne informacje o wersji wygenerowane przez Ciebie dla danego adresu URL.
InjectManifestOptions
Typ
InjectPartial
Właściwości
-
injectionPoint
string opcjonalny
Wartość domyślna: "self.__WB_MANIFEST"
Ciąg do znalezienia w pliku
swSrc
. Gdy zostanie znaleziony, zostanie zastąpiony wygenerowanym plikiem manifestu do wstępnego buforowania. -
swSrc
ciąg znaków
Ścieżka i nazwa pliku usługi, który będzie odczytywany podczas procesu kompilacji, w uwzględnieniu bieżącego katalogu roboczego.
ManifestEntry
Właściwości
-
integralność
string opcjonalny
-
wersja
ciąg znaków
-
URL
ciąg znaków
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Typ
funkcja
Parametry
-
manifestEntries
(ManifestEntry & object)[]
-
rozmiar
liczba
-
-
kompilacja
nieznany opcjonalny
Zwroty
-
Obietnice<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Właściwości
-
plik manifestu
(ManifestEntry & object)[]
-
rozmiar
liczba
-
-
ostrzeżenia
string[] opcjonalnie
OptionalGlobDirectoryPartial
Właściwości
-
globDirectory
string opcjonalny
Lokalny katalog, który ma być dopasowywany do
globPatterns
. Ścieżka jest względna do bieżącego katalogu.
RequiredGlobDirectoryPartial
Właściwości
-
globDirectory
ciąg znaków
Lokalny katalog, który ma być dopasowywany do
globPatterns
. Ścieżka jest względna do bieżącego katalogu.
RequiredSWDestPartial
Właściwości
-
swDest
ciąg znaków
Ścieżka i nazwa pliku usługi, który zostanie utworzony przez proces kompilacji, względem bieżącego katalogu roboczego. Musi kończyć się na „.js”.
RuntimeCaching
Właściwości
-
handler
Określa, jak ścieżka w czasie wykonywania wygeneruje odpowiedź. Aby użyć jednej z wbudowanych
workbox-strategies
, podaj jej nazwę, na przykład'NetworkFirst'
. Może to być też funkcja wywołania zwrotnegoworkbox-core.RouteHandler
z niestandardową logiką odpowiedzi. -
method
HTTPMethod opcjonalnie
Wartość domyślna: „GET”
Metoda HTTP, do której ma być dopasowywany ruch. Wartość domyślna
'GET'
jest zwykle wystarczająca, chyba że musisz dopasować'POST'
,'PUT'
lub inny typ żądania. -
Opcje
object opcjonalne
-
backgroundSync
object opcjonalne
Skonfigurowanie tego ustawienia spowoduje dodanie instancji
workbox-background-sync.BackgroundSyncPlugin
doworkbox-strategies
skonfigurowanej whandler
.-
nazwa
ciąg znaków
-
Opcje
QueueOptions opcjonalnie
-
-
broadcastUpdate
object opcjonalne
Skonfigurowanie tego ustawienia spowoduje dodanie instancji
workbox-broadcast-update.BroadcastUpdatePlugin
doworkbox-strategies
skonfigurowanej whandler
.-
channelName
string opcjonalny
-
-
cacheName
string opcjonalny
Jeśli zostanie podana, spowoduje ustawienie właściwości
cacheName
obiektuworkbox-strategies
skonfigurowanego w .handler
-
cacheableResponse
CacheableResponseOptions opcjonalne
Skonfigurowanie tego ustawienia spowoduje dodanie instancji
workbox-cacheable-response.CacheableResponsePlugin
do instancjiworkbox-strategies
skonfigurowanej whandler
. -
wygaśnięcie
ExpirationPluginOptions opcjonalnie
Skonfigurowanie tego ustawienia spowoduje dodanie instancji
workbox-expiration.ExpirationPlugin
do instancjiworkbox-strategies
skonfigurowanej whandler
. -
fetchOptions
RequestInit opcjonalny
Po skonfigurowaniu tego ustawienia wartość
fetchOptions
zostanie przekazana doworkbox-strategies
skonfigurowanej whandler
. -
matchOptions
CacheQueryOptions opcjonalnie
Po skonfigurowaniu tego ustawienia wartość
matchOptions
zostanie przekazana doworkbox-strategies
skonfigurowanej whandler
. -
networkTimeoutSeconds
number opcjonalny
Jeśli zostanie podana, spowoduje ustawienie właściwości
networkTimeoutSeconds
obiektuworkbox-strategies
skonfigurowanego w .handler
Pamiętaj, że tylko'NetworkFirst'
i'NetworkOnly'
obsługująnetworkTimeoutSeconds
. -
wtyczki
WorkboxPlugin[] opcjonalnie
Dzięki tej konfiguracji możesz używać co najmniej jednej wtyczki Workbox, która nie ma opcji „skrótu” (np.
expiration
dlaworkbox-expiration.ExpirationPlugin
). Wtyczki podane tutaj zostaną dodane doworkbox-strategies
skonfigurowanej whandler
. -
precacheFallback
object opcjonalne
Skonfigurowanie tego ustawienia spowoduje dodanie instancji
workbox-precaching.PrecacheFallbackPlugin
doworkbox-strategies
skonfigurowanej whandler
.-
fallbackURL
ciąg znaków
-
-
rangeRequests
wartość logiczna opcjonalna
Włączenie tej opcji spowoduje dodanie instancji
workbox-range-requests.RangeRequestsPlugin
doworkbox-strategies
skonfigurowanej whandler
.
-
-
urlPattern
string | RegExp | RouteMatchCallback
Te kryteria dopasowania określają, czy skonfigurowany moduł obsługi wygeneruje odpowiedź na żądania, które nie pasują do żadnego z zapasowych adresów URL. Jeśli zdefiniowano wiele tras
RuntimeCaching
, odpowiedź wygeneruje pierwsza trasa, której wartośćurlPattern
pasuje do żądania.Ta wartość jest bezpośrednio mapowana na pierwszy parametr przekazany 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[] opcjonalnie
Co najmniej 1 nazwa fragmentu Webpack. Zawartość tych fragmentów zostanie uwzględniona w wygenerowanym serwisie workera za pomocą wywołania
importScripts()
. -
swDest
string opcjonalny
Wartość domyślna: "service-worker.js"
Nazwa zasobu pliku usługi roboczej utworzonego przez tę wtyczkę.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Właściwości
-
compileSrc
wartość logiczna opcjonalna
Wartość domyślna: true.
Jeśli ustawisz wartość
true
(domyślna), plikswSrc
zostanie skompilowany przez webpack. Gdyfalse
, kompilacja nie zostanie przeprowadzona (i nie będzie można użyćwebpackCompilationPlugins
). Ustaw nafalse
, jeśli chcesz wstrzyknąć manifest do pliku JSON. -
swDest
string opcjonalny
Nazwa zasobu pliku usługi, który zostanie utworzony przez ten wtyczkę. Jeśli nie zostanie podana, 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, gdycompileSrc
totrue
.
WebpackPartial
Właściwości
-
kawałki
string[] opcjonalnie
Nazwy co najmniej 1 elementu, którego odpowiadające pliki wyjściowe powinny zostać uwzględnione w pliku manifestu do wstępnego buforowania.
-
wyklucz
(string | RegExp | function)[] opcjonalnie
Jeden lub więcej wskaźników służących do wykluczania zasobów z pliku manifestu do wstępnego buforowania. Jest on interpretowany zgodnie z tymi samymi zasadami co standardowa opcja
exclude
wwebpack
. Jeśli nie podasz żadnej opcji, domyślna wartość to[/\.map$/, /^manifest.*\.js$]
. -
excludeChunks
string[] opcjonalnie
Nazwy co najmniej 1 elementu, którego odpowiadające mu pliki wyjściowe powinny zostać wykluczone z manifesztu wstępnego.
-
uwzględnij
(string | RegExp | function)[] opcjonalnie
Jeden lub więcej wskaźników używanych do uwzględniania zasobów w pliku manifestu wstępnego buforowania. Jest on interpretowany zgodnie z tymi samymi zasadami co standardowa opcja
include
wwebpack
. -
tryb
string opcjonalny
Jeśli ustawisz wartość „production”, zostanie wygenerowany zoptymalizowany pakiet usługi, który wyklucza informacje debugowania. Jeśli nie skonfigurujesz tego parametru, zostanie użyta wartość
mode
skonfigurowana w bieżącej kompilacjiwebpack
.
Metody
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Spowoduje to skopiowanie do katalogu lokalnego zestawu bibliotek używanych przez Workboxa, które należy wdrożyć wraz z pliku usługi.
Zamiast wdrażać te lokalne kopie, możesz użyć Workboxa z oficjalnego adresu URL CDN.
Ta metoda jest udostępniana dla wygody deweloperów korzystających z workbox-build.injectManifest
, którzy nie chcą używać kopii Workbox w CDN. Deweloperzy korzystający z funkcji workbox-build.generateSW
nie muszą wywoływać tej metody wprost.
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,
)
Ta metoda tworzy listę adresów URL do wstępnego buforowania, zwaną „wstępnym buforowaniem pliku manifestu”, na podstawie podanych przez Ciebie opcji.
Zawiera też dodatkowe opcje konfiguracji zachowania pracownika usługi, takie jak dowolne reguły runtimeCaching
, których ma używać.
Na podstawie pliku manifestu do wstępnego buforowania i dodatkowej konfiguracji zapisuje na dysku plik usługi instancji roboczej gotowy do użycia plik na dysku 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
-
Obietnica<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Ta metoda zwraca listę adresów URL do wstępnego buforowania, czyli „przewstępnego pliku manifestu”, wraz ze szczegółami dotyczącymi liczby i rozmiaru wpisów 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
-
Obietnica<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
Parametry
-
moduleName
ciąg znaków
-
buildType
BuildType
Zwroty
-
ciąg znaków
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Ta metoda tworzy listę adresów URL do wstępnego buforowania, zwaną „wstępnym buforowaniem pliku manifestu”, na podstawie podanych przez Ciebie opcji.
Manifest jest wstrzykiwany do pliku swSrc
, a ciąg znaków zastępczych injectionPoint
określa, gdzie w pliku powinien się on znaleźć.
Ostateczny plik usługi roboczej z wstrzykniętym manifestem jest zapisywany na dysku w miejscu swDest
.
Ta metoda nie skompiluje ani nie zbundle’uje pliku swSrc
, tylko wstrzyknie 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
-
Obietnica<BuildResult>