workbox-build modülü, düğüm tabanlı bir derleme sürecine entegre olur ve eksiksiz bir hizmet çalışanı oluşturabilir veya yalnızca önbelleğe alınacak öğelerin listesini oluşturabilir. Bu liste, mevcut bir hizmet çalışanında kullanılabilir.
Çoğu geliştiricinin kullanacağı iki mod generateSW ve injectManifest'dir. Aşağıdaki soruların yanıtları, kullanacağınız doğru modu ve yapılandırmayı seçmenize yardımcı olabilir.
Hangi Mod Kullanılmalıdır?
generateSW
generateSW modu, yapılandırma seçenekleriyle özelleştirilmiş bir hizmet çalışanı dosyası oluşturur ve bunu diske yazar.
generateSW ne zaman kullanılır?
- Dosyaları önceden önbelleğe almak istiyorsanız.
- Basit bir çalışma zamanı önbelleğe alma ihtiyacınız varsa.
Ne zaman KULLANILMAZ? generateSW
- Diğer Service Worker özelliklerini (ör. Web Push) kullanmak istiyorsanız.
- Ek komut dosyaları içe aktarmak veya özel önbelleğe alma stratejileri için ek mantık eklemek istiyorsanız.
injectManifest
injectManifest modu, önbelleğe alınacak URL'lerin bir listesini oluşturur ve bu önbelleğe alma manifestini mevcut bir hizmet çalışanı dosyasına ekler. Aksi takdirde dosya olduğu gibi bırakılır.
injectManifest ne zaman kullanılır?
- Service worker'ınız üzerinde daha fazla kontrol sahibi olmak istiyorsanız.
- Dosyaları önceden önbelleğe almak istiyorsanız.
- Yönlendirmeyi ve stratejileri özelleştirmeniz gerekir.
- Service worker'ınızı diğer platform özellikleriyle (ör. Web Push) kullanmak istiyorsanız.
Ne zaman KULLANILMAZ? injectManifest
- Sitenize bir servis çalışanı eklemenin en kolay yolunu istiyorsanız.
generateSW Modu
En yaygın yapılandırma seçeneklerini kullanarak düğüm tabanlı bir derleme komut dosyasında generateSW modunu aşağıdaki gibi kullanabilirsiniz:
// 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.`);
});
Bu işlem, yapılandırmanız tarafından alınan tüm dosyalar ve sağlanan çalışma zamanı önbelleğe alma kuralları için önbelleğe alma kurulumu olan bir hizmet çalışanı oluşturur.
Yapılandırma seçeneklerinin tam listesini referans belgelerinde bulabilirsiniz.
injectManifest Modu
En yaygın yapılandırma seçeneklerini kullanarak düğüm tabanlı bir derleme komut dosyasında injectManifest modunu aşağıdaki gibi kullanabilirsiniz:
// 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.`);
});
Bu işlem, yapılandırmanız tarafından alınan dosyalara dayalı bir önbelleğe alma manifesti oluşturur ve bunu mevcut hizmet çalışanı dosyanıza yerleştirir.
Yapılandırma seçeneklerinin tam listesini referans belgelerinde bulabilirsiniz.
Ek modlar
generateSW veya injectManifest planının çoğu geliştiricinin ihtiyaçlarını karşılayacağını düşünüyoruz. Ancak workbox-build tarafından desteklenen ve belirli kullanım alanları için uygun olabilecek başka bir mod vardır.
getManifest Modu
Bu, kavramsal olarak injectManifest moduna benzer ancak manifesti kaynak service worker dosyasına eklemek yerine, giriş sayısı ve toplam boyutla ilgili bilgilerle birlikte manifest girişleri dizisini döndürür.
En yaygın yapılandırma seçeneklerini kullanarak düğüm tabanlı bir derleme komut dosyasında injectManifest modunu aşağıdaki gibi kullanabilirsiniz:
// 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.
});
Yapılandırma seçeneklerinin tam listesini referans belgelerinde bulabilirsiniz.
Türler
BasePartial
Özellikler
-
additionalManifestEntries
(string | ManifestEntry)[] isteğe bağlı
Derleme yapılandırmasının bir parçası olarak oluşturulan girişlere ek olarak önbelleğe alınacak girişlerin listesi.
-
dontCacheBustURLsMatching
Normal ifade isteğe bağlı
Bununla eşleşen öğelerin, URL'leri aracılığıyla benzersiz şekilde sürüm oluşturduğu varsayılır ve önbelleği doldururken yapılan normal HTTP önbelleğini temizleme işleminden muaf tutulur. Gerekli olmasa da mevcut derleme işleminiz her dosya adına zaten bir
[hash]değeri ekliyorsa önbelleğe alma sırasında kullanılan bant genişliğini azaltacağından bunu algılayacak bir normal ifade sağlamanız önerilir. -
manifestTransforms
ManifestTransform[] isteğe bağlı
Oluşturulan manifest dosyasına sırayla uygulanacak bir veya daha fazla işlev.
modifyURLPrefixveyadontCacheBustURLsMatchingda belirtilmişse önce bunlara karşılık gelen dönüşümler uygulanır. -
maximumFileSizeToCacheInBytes
number isteğe bağlı
Varsayılan değer: 2097152
Bu değer, önceden önbelleğe alınacak dosyaların maksimum boyutunu belirlemek için kullanılabilir. Bu sayede, yanlışlıkla kalıplarınızdan biriyle eşleşmiş olabilecek çok büyük dosyaları yanlışlıkla önceden önbelleğe almanız engellenir.
-
modifyURLPrefix
object isteğe bağlı
Nesne eşleme dizesi öneklerini, değiştirme dizesi değerleriyle eşleyen bir dize. Örneğin, web barındırma kurulumunuz yerel dosya sistemi kurulumunuzla eşleşmiyorsa bir manifest girişinden yol önekini kaldırmak veya girişine yol öneki eklemek için kullanılabilir. Daha esnek bir alternatif olarak
manifestTransformsseçeneğini kullanabilir ve manifestteki girişleri sağladığınız mantıkla değiştiren bir işlev sağlayabilirsiniz.Örnek kullanım:
// Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Tür
Omit<GetManifestResult"manifestEntries"
> & object
Özellikler
-
filePaths
string[]
GeneratePartial
Özellikler
-
babelPresetEnvTargets
string[] isteğe bağlı
Varsayılan değer: ["chrome >= 56"]
Service worker paketini dönüştürürken
babel-preset-env'ye iletilecek hedefler. -
cacheId
dize isteğe bağlı
Önbellek adlarının önüne eklenecek isteğe bağlı bir kimlik. Bu özellik, özellikle birden fazla sitenin aynı
http://localhost:portkaynak üzerinden yayınlanabileceği yerel geliştirme için yararlıdır. -
cleanupOutdatedCaches
boolean isteğe bağlı
Varsayılan değer: false
Workbox'ın eski ve uyumsuz sürümler tarafından oluşturulan önbellekleri tanımlayıp silmeye çalışıp çalışmaması.
-
clientsClaim
boolean isteğe bağlı
Varsayılan değer: false
Service worker'ın etkinleşir etkinleşmez mevcut istemcileri kontrol etmeye başlaması gerekip gerekmediği.
-
directoryIndex
dize isteğe bağlı
/ile biten bir URL için gezinme isteği önbelleğe alınmış bir URL ile eşleşmezse bu değer URL'ye eklenir ve önbelleğe alınmış bir eşleşme olup olmadığı kontrol edilir. Bu, web sunucunuzun dizin dizini için kullandığı değere ayarlanmalıdır. -
disableDevLogs
boolean isteğe bağlı
Varsayılan değer: false
-
ignoreURLParametersMatching
RegExp[] isteğe bağlı
Bu dizideki normal ifadelerden biriyle eşleşen tüm arama parametresi adları, önbelleğe alma eşleşmesi aranmadan önce kaldırılır. Bu, kullanıcılarınızın örneğin trafiğin kaynağını izlemek için kullanılan URL parametrelerini içeren URL'ler isteyebileceği durumlarda yararlıdır. Bu özellik sağlanmazsa varsayılan değer
[/^utm_/, /^fbclid$/]olur. -
importScripts
string[] isteğe bağlı
Oluşturulan hizmet çalışanı dosyasında
importScripts()'a iletilmesi gereken JavaScript dosyalarının listesi. Bu, Workbox'ın üst düzey hizmet çalışanı dosyanızı oluşturmasına izin vermek istediğiniz ancak push etkinlik dinleyicisi gibi bazı ek kodlar eklemek istediğiniz durumlarda kullanışlıdır. -
inlineWorkboxRuntime
boolean isteğe bağlı
Varsayılan değer: false
Workbox kitaplığının çalışma zamanı kodunun üst düzey hizmet çalışanına dahil edilip edilmeyeceği veya hizmet çalışanıyla birlikte dağıtılması gereken ayrı bir dosyaya bölünip bölünmeyeceği. Çalışma zamanını ayrı tutmak, üst düzey hizmet çalışanınız her değiştiğinde kullanıcıların Workbox kodunu yeniden indirmesi gerekmediği anlamına gelir.
-
mod
dize isteğe bağlı
Varsayılan değer: "production"
"Üretim" olarak ayarlanırsa hata ayıklama bilgilerini içermeyen optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmamışsa
process.env.NODE_ENVdeğeri kullanılır. Bu değer de kullanılamazsa'production'değeri kullanılır. -
dize isteğe bağlı
Varsayılan değer: null
Belirtilirse önbelleğe alınmamış URL'ler için tüm gezinme istekleri, sağlanan URL'deki HTML ile karşılanır. Önceden önbelleğe alma manifestinizde listelenen bir HTML dokümanının URL'sini iletmeniz gerekir. Bu, tüm gezinmelerin ortak App Shell HTML'yi kullanmasını istediğiniz tek sayfalık uygulama senaryolarında kullanılmak üzere tasarlanmıştır.
-
RegExp[] isteğe bağlı
Yapılandırılan
navigateFallbackdavranışının hangi URL'lere uygulanacağını kısıtlayan, isteğe bağlı bir normal ifade dizisi. Bu özellik, sitenizin URL'lerinin yalnızca bir alt kümesinin tek sayfa uygulaması olarak değerlendirilmesi gerektiğinde faydalıdır. HemnavigateFallbackDenylisthem denavigateFallbackAllowlistyapılandırılmışsa izin verilmeyenler listesi önceliklidir.Not: Bu normal ifadeler, gezinme sırasında her hedef URL'ye göre değerlendirilebilir. Karmaşık normal ifadeler kullanmaktan kaçının. Aksi takdirde, kullanıcılarınız sitenizde gezinirken gecikmelerle karşılaşabilir.
-
RegExp[] isteğe bağlı
Yapılandırılan
navigateFallbackdavranışının hangi URL'lere uygulanacağını kısıtlayan, isteğe bağlı bir normal ifade dizisi. Bu özellik, sitenizin URL'lerinin yalnızca bir alt kümesinin tek sayfalık uygulama olarak değerlendirilmesi gerektiğinde faydalıdır. HemnavigateFallbackDenylisthem denavigateFallbackAllowlistyapılandırılmışsa izin verilmeyenler listesi önceliklidir.Not: Bu normal ifadeler, gezinme sırasında her hedef URL'ye göre değerlendirilebilir. Karmaşık normal ifadeler kullanmaktan kaçının. Aksi takdirde, kullanıcılarınız sitenizde gezinirken gecikmelerle karşılaşabilir.
-
boolean isteğe bağlı
Varsayılan değer: false
Oluşturulan service worker'da önceden yükleme gezinme özelliğinin etkinleştirilip etkinleştirilmeyeceği. Doğru olarak ayarlandığında, gezinme istekleriyle eşleşecek ve önceden yüklenmiş yanıtı kullanacak uygun bir yanıt stratejisi oluşturmak için
runtimeCachingöğesini de kullanmanız gerekir. -
offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions isteğe bağlı
Varsayılan değer: false
Çevrimdışı Google Analytics desteğinin dahil edilip edilmeyeceğini kontrol eder.
trueolduğunda,workbox-google-analytics'nininitialize()ile yaptığı görüşme, oluşturulan hizmet çalışanıza eklenir.Objectolarak ayarlandığında bu nesne,initialize()çağrısına iletilir ve davranışları özelleştirmenize olanak tanır. -
runtimeCaching
RuntimeCaching[] isteğe bağlı
Service worker'ınızı oluşturmak için Workbox'ın derleme araçlarını kullanırken bir veya daha fazla çalışma zamanı önbelleğe alma yapılandırması belirtebilirsiniz. Bunlar daha sonra, tanımladığınız eşleşme ve işleyici yapılandırması kullanılarak
workbox-routing.registerRouteçağrılarına çevrilir.Tüm seçenekler için
workbox-build.RuntimeCachingbelgelerine bakın. Aşağıdaki örnekte, iki çalışma zamanı rotasının tanımlandığı tipik bir yapılandırma gösterilmektedir: -
skipWaiting
boolean isteğe bağlı
Varsayılan değer: false
Oluşturulan hizmet çalışanına
skipWaiting()için koşulsuz bir çağrı eklenip eklenmeyeceği.falseise bunun yerinemessagedinleyicisi eklenir. Bu sayede istemci sayfaları, bekleyen bir hizmet çalışanındapostMessage({type: 'SKIP_WAITING'})çağrısı yaparakskipWaiting()tetikleyebilir. -
sourcemap
boolean isteğe bağlı
Varsayılan değer: true
Oluşturulan hizmet çalışanı dosyaları için kaynak haritası oluşturulup oluşturulmayacağı.
GenerateSWOptions
Tür
GetManifestOptions
GetManifestResult
Özellikler
-
sayı
sayı
-
manifestEntries
-
beden
sayı
-
uyarılar
string[]
GlobPartial
Özellikler
-
globFollow
boolean isteğe bağlı
Varsayılan değer: true
Önbelleğe alma manifestosu oluşturulurken sembolik bağlantıların takip edilip edilmeyeceğini belirler. Daha fazla bilgi için
followtanımınıglobbelgelerinde inceleyin. -
globIgnores
string[] isteğe bağlı
Varsayılan değer: ["**\/node_modules\/**\/*"]
Önbelleğe alma manifesti oluşturulurken her zaman hariç tutulacak dosyalarla eşleşen bir kalıp grubu. Daha fazla bilgi için
ignoretanımınıglobbelgelerinde inceleyin. -
globPatterns
string[] isteğe bağlı
Varsayılan değer: ["**\/*.{js,wasm,css,html}"]
Bu kalıplardan herhangi biriyle eşleşen dosyalar önbelleğe alma manifestine dahil edilir. Daha fazla bilgi için
globprimer bölümüne bakın. -
templatedURLs
object isteğe bağlı
Bir URL, sunucu tarafındaki bazı mantıklara göre oluşturuluyorsa içeriği birden fazla dosyaya veya başka bir benzersiz dize değerine bağlı olabilir. Bu nesnedeki anahtarlar, sunucuda oluşturulan URL'lerdir. Değerler bir dize dizisiyse
globmodeli olarak yorumlanır ve bu modellerle eşleşen dosyaların içerikleri, URL'ye benzersiz bir sürüm oluşturmak için kullanılır. Tek bir dizeyle kullanıldığında, belirli bir URL için oluşturduğunuz benzersiz sürüm oluşturma bilgisi olarak yorumlanır.
InjectManifestOptions
Tür
InjectPartial
Özellikler
-
injectionPoint
dize isteğe bağlı
Varsayılan değer: "self.__WB_MANIFEST"
swSrcdosyası içinde bulunacak dize. Bulunduktan sonra, oluşturulan önbelleğe alma manifestosuyla değiştirilir. -
swSrc
dize
Derleme işlemi sırasında okunacak hizmet çalışanı dosyasının yolu ve dosya adı (geçerli çalışma dizinine göre).
ManifestEntry
Özellikler
-
dürüstlük
dize isteğe bağlı
-
düzeltme
dize
-
url
dize
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Tür
işlev
Parametreler
-
manifestEntries
(ManifestEntry & object)[]
-
beden
sayı
-
-
derleme
bilinmiyor isteğe bağlı
İadeler
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Özellikler
-
manifest
(ManifestEntry & object)[]
-
beden
sayı
-
-
uyarılar
string[] isteğe bağlı
OptionalGlobDirectoryPartial
Özellikler
-
globDirectory
dize isteğe bağlı
globPatternsile eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizine göre belirlenir.
RequiredGlobDirectoryPartial
Özellikler
-
globDirectory
dize
globPatternsile eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizine göre belirlenir.
RequiredSWDestPartial
Özellikler
-
swDest
dize
Derleme işlemi tarafından oluşturulacak hizmet çalışanı dosyasının yolu ve dosya adı (geçerli çalışma dizinine göre). ".js" ile bitmelidir.
RuntimeCaching
Özellikler
-
handler
Bu, çalışma zamanı rotasının nasıl yanıt oluşturacağını belirler. Yerleşik
workbox-strategies'lerden birini kullanmak için adını (ör.'NetworkFirst') girin. Alternatif olarak, bu, özel yanıt mantığına sahip birworkbox-core.RouteHandlergeri çağırma işlevi olabilir. -
method
HTTPMethod isteğe bağlı
Varsayılan değer: "GET"
Eşleştirilecek HTTP yöntemi.
'GET'için varsayılan değer,'POST','PUT'veya başka bir tür isteği açıkça eşleştirmeniz gerekmediği sürece genellikle yeterlidir. -
seçenekler
object isteğe bağlı
-
backgroundSync
object isteğe bağlı
Bu ayarı yapılandırmak,
handleriçinde yapılandırılanworkbox-strategiesöğesine birworkbox-background-sync.BackgroundSyncPluginörneği ekler.-
ad
dize
-
seçenekler
QueueOptions isteğe bağlı
-
-
broadcastUpdate
object isteğe bağlı
Bu ayarı yapılandırmak,
handleriçinde yapılandırılanworkbox-strategiesöğesine birworkbox-broadcast-update.BroadcastUpdatePluginörneği ekler.-
channelName
dize isteğe bağlı
-
seçenekler
-
-
cacheName
dize isteğe bağlı
Sağlanırsa bu,
handleriçinde yapılandırılanworkbox-strategiesöğesinincacheNameözelliğini ayarlar. -
cacheableResponse
CacheableResponseOptions isteğe bağlı
Bu ayarı yapılandırmak,
handleriçinde yapılandırılanworkbox-strategies'aworkbox-cacheable-response.CacheableResponsePluginörneği ekler. -
son geçerlilik tarihi
ExpirationPluginOptions isteğe bağlı
Bu ayarı yapılandırmak,
handleriçinde yapılandırılanworkbox-strategies'aworkbox-expiration.ExpirationPluginörneği ekler. -
fetchOptions
RequestInit isteğe bağlı
Bu ayarı yapılandırmak,
fetchOptionsdeğerinihandleriçinde yapılandırılanworkbox-strategies'a iletir. -
matchOptions
CacheQueryOptions isteğe bağlı
Bu ayarı yapılandırmak,
matchOptionsdeğerinihandleriçinde yapılandırılanworkbox-strategies'a iletir. -
networkTimeoutSeconds
number isteğe bağlı
Sağlanırsa bu,
handleriçinde yapılandırılanworkbox-strategiesöğesininnetworkTimeoutSecondsözelliğini ayarlar.networkTimeoutSecondsözelliğini yalnızca'NetworkFirst've'NetworkOnly'ürünlerinin desteklediğini unutmayın. -
plugins
WorkboxPlugin[] isteğe bağlı
Bu ayar, "kısayol " seçenekleri olmayan (
workbox-expiration.ExpirationPluginiçinexpirationgibi) bir veya daha fazla Workbox eklentisinin kullanılmasına olanak tanır. Burada sağlanan eklentiler,handleriçinde yapılandırılanworkbox-strategies'ye eklenir. -
precacheFallback
object isteğe bağlı
Bu ayarı yapılandırmak,
handleriçinde yapılandırılanworkbox-strategies'aworkbox-precaching.PrecacheFallbackPluginörneği ekler.-
fallbackURL
dize
-
-
rangeRequests
boolean isteğe bağlı
Bu ayarı etkinleştirdiğinizde,
handleriçinde yapılandırılanworkbox-strategiesöğesine birworkbox-range-requests.RangeRequestsPluginörneği eklenir.
-
-
urlPattern
string | RegExp | RouteMatchCallback
Bu eşleşme ölçütü, yapılandırılan işleyicinin önbelleğe alınmış URL'lerden biriyle eşleşmeyen istekler için yanıt oluşturup oluşturmayacağını belirler. Birden fazla
RuntimeCachingrotası tanımlanmışsaurlPatternile eşleşen ilk rota yanıt verir.Bu değer,
workbox-routing.registerRouteişlevine iletilen ilk parametreyle doğrudan eşlenir. En fazla esneklik içinworkbox-core.RouteMatchCallbackişlevini kullanmanız önerilir.
StrategyName
Enum
"CacheFirst"
"CacheOnly"
"NetworkFirst"
"NetworkOnly"
"StaleWhileRevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Özellikler
-
importScriptsViaChunks
string[] isteğe bağlı
Bir veya daha fazla webpack parçası adı. Bu parçaların içeriği,
importScripts()çağrısı aracılığıyla oluşturulan service worker'a dahil edilir. -
swDest
dize isteğe bağlı
Varsayılan değer: "service-worker.js"
Bu eklenti tarafından oluşturulan hizmet çalışanı dosyasının öğe adı.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Özellikler
-
compileSrc
boolean isteğe bağlı
Varsayılan değer: true
true(varsayılan) olduğundaswSrcdosyası webpack tarafından derlenir.falseolduğunda derleme gerçekleşmez (vewebpackCompilationPluginskullanılamaz). Manifest dosyasını, örneğin bir JSON dosyasına yerleştirmek istiyorsanızfalseolarak ayarlayın. -
swDest
dize isteğe bağlı
Bu eklenti tarafından oluşturulacak hizmet çalışanı dosyasının öğe adı. Belirtilmezse ad,
swSrcadına göre belirlenir. -
webpackCompilationPlugins
any[] isteğe bağlı
swSrcgiriş dosyası derlenirken kullanılacak isteğe bağlıwebpackeklentileri. YalnızcacompileSrctrueise geçerlidir.
WebpackPartial
Özellikler
-
parçalar
string[] isteğe bağlı
Önceden önbelleğe alma manifestine dahil edilmesi gereken karşılık gelen çıkış dosyalarının bir veya daha fazla parça adı.
-
hariç tut
(string | RegExp | function)[] isteğe bağlı
Öğeleri önbelleğe alma manifestinden hariç tutmak için kullanılan bir veya daha fazla belirleyici. Bu,
webpack'nin standartexcludeseçeneğiyle aynı kurallara göre yorumlanır. Bu özellik sağlanmazsa varsayılan değer[/\.map$/, /^manifest.*\.js$]olur. -
excludeChunks
string[] isteğe bağlı
Önceden önbelleğe alma manifestinden çıkarılması gereken karşılık gelen çıkış dosyalarının bir veya daha fazla parça adı.
-
dahil et
(string | RegExp | function)[] isteğe bağlı
Önbelleğe alma manifestine öğe eklemek için kullanılan bir veya daha fazla belirleyici. Bu,
webpack'nin standartincludeseçeneğiyle aynı kurallara göre yorumlanır. -
mod
dize isteğe bağlı
"Üretim" olarak ayarlanırsa hata ayıklama bilgilerini içermeyen optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmamışsa geçerli
webpackderlemesinde yapılandırılanmodedeğeri kullanılır.
Yöntemler
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Bu işlem, Workbox tarafından kullanılan bir dizi çalışma zamanı kitaplığını yerel bir dizine kopyalar. Bu dizin, hizmet çalışanı dosyanızla birlikte dağıtılmalıdır.
Bu yerel kopyaları dağıtmak yerine, Workbox'ı resmi CDN URL'sinden kullanabilirsiniz.
Bu yöntem, Workbox'ın CDN kopyalarını kullanmayı tercih etmeyen workbox-build.injectManifest kullanan geliştiricilerin yararına sunulmuştur. workbox-build.generateSW kullanan geliştiricilerin bu yöntemi açıkça çağırması gerekmez.
Parametreler
-
destDirectory
dize
Yeni kitaplık dizininin oluşturulacağı üst dizinin yolu.
İadeler
-
Promise<string>
Yeni oluşturulan dizinin adı.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Bu yöntem, sağladığınız seçeneklere göre "önbelleğe alma manifesti" olarak adlandırılan, önbelleğe alınacak URL'lerin bir listesini oluşturur.
Ayrıca, hizmet çalışanının davranışını yapılandıran ek seçenekleri de (ör. kullanması gereken runtimeCaching kuralları) alır.
Önceden önbelleğe alma manifestine ve ek yapılandırmaya bağlı olarak, swDest konumunda kullanıma hazır bir hizmet çalışanı dosyası diske yazılır.
// 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: '...',
});
Parametreler
-
yapılandırma
İadeler
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Bu yöntem, sağladığınız seçeneklere göre giriş sayısı ve boyutuyla ilgili ayrıntıların yanı sıra "önbelleğe alma manifestosu" olarak adlandırılan, önbelleğe alınacak URL'lerin bir listesini döndürür.
// 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: ...,
});
Parametreler
-
yapılandırma
İadeler
-
Promise<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Parametreler
-
moduleName
dize
-
buildType
BuildType
İadeler
-
dize
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Bu yöntem, sağladığınız seçeneklere göre "önbelleğe alma manifesti" olarak adlandırılan, önbelleğe alınacak URL'lerin bir listesini oluşturur.
Manifest, swSrc dosyasına yerleştirilir ve yer tutucu dize injectionPoint, manifestin dosyada nereye yerleştirileceğini belirler.
Manifest'in yerleştirildiği son hizmet çalışanı dosyası, swDest konumunda diske yazılır.
Bu yöntem, swSrc dosyanızı derlemez veya paketlemez; yalnızca manifest ekleme işlemini gerçekleştirir.
// 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: '...',
});
Parametreler
-
yapılandırma
İadeler
-
Promise<BuildResult>