workbox-build
modülü, düğüm tabanlı bir derleme işlemine entegre olur ve eksiksiz bir hizmet çalışanı oluşturabilir. Alternatif olarak, önbelleğe alınacak öğelerin listesini mevcut bir hizmet çalışanı içinde de kullanabilirsiniz.
Çoğu geliştiricinin kullanacağı iki mod şunlardır: generateSW
ve injectManifest
. Aşağıdaki soruların yanıtları, kullanılacak doğru modu ve yapılandırmayı seçmenize yardımcı olabilir.
Hangi Mod Kullanılmalı?
generateSW
generateSW
modu, sizin için yapılandırma seçenekleri aracılığıyla özelleştirilen bir hizmet çalışanı dosyası oluşturur ve bunu diske yazar.
generateSW
ne zaman kullanılır?
- Dosyaları önbelleğe almak istiyorsunuz.
- Çalışma zamanı önbelleğe almayla ilgili basit ihtiyaçlarınız var.
generateSW
ne zaman KULLANILMAZ?
- Diğer Service Worker özelliklerini (ör. Web Push) kullanmak istiyorsanız.
- Ek komut dosyalarını içe aktarmak veya özel önbelleğe alma stratejileri için başka mantık eklemek istiyorsunuz.
injectManifest
injectManifest
modu, önbelleğe alınacak URL'lerin listesini oluşturur ve bu ön önbellek manifestini mevcut bir hizmet çalışanı dosyasına ekler. Aksi takdirde dosyayı olduğu gibi bırakır.
injectManifest
ne zaman kullanılır?
- Service Worker'ınız üzerinde daha fazla kontrole sahip olmak istiyorsunuz.
- Dosyaları önbelleğe almak istiyorsunuz.
- Yönlendirmeyi ve stratejileri özelleştirmeniz gerekir.
- Service Worker'ınızı diğer platform özellikleriyle (ör. Web Push) kullanmak istiyorsunuz.
injectManifest
ne zaman KULLANILMAZ?
- Sitenize Service Worker eklemenin en kolay yolunu öğrenmek istiyorsunuz.
generateSW
Modu
generateSW
modunu, en yaygın yapılandırma seçeneklerinden yararlanarak düğüm tabanlı bir derleme komut dosyasında kullanabilirsiniz. Örneğin:
// 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 toplanan tüm dosyalar için önbelleğe alma kurulumuna ve sağlanan çalışma zamanı önbelleğe alma kurallarına sahip bir hizmet çalışanı oluşturur.
Yapılandırma seçeneklerinin tamamını referans belgelerinde bulabilirsiniz.
injectManifest
Modu
injectManifest
modunu, en yaygın yapılandırma seçeneklerinden yararlanarak düğüm tabanlı bir derleme komut dosyasında kullanabilirsiniz. Örneğin:
// 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 ön önbellek manifesti oluşturur ve bunu mevcut Service Worker dosyanıza ekler.
Yapılandırma seçeneklerinin tamamını referans belgelerinde bulabilirsiniz.
Ek modlar
Çoğu geliştiricinin ihtiyaçlarına uygun generateSW
veya injectManifest
olacağını umuyoruz. Ancak belirli kullanım alanları için uygun olabilecek, workbox-build
tarafından desteklenen başka bir mod da vardır.
getManifest
Modu
Bu, kavram olarak injectManifest
moduna benzer ancak manifesti kaynak hizmet çalışanı dosyasına eklemek yerine, giriş sayısı ve toplam boyutla ilgili bilgilerle birlikte manifest girişleri dizisini döndürür.
injectManifest
modunu, en yaygın yapılandırma seçeneklerinden yararlanarak düğüm tabanlı bir derleme komut dosyasında kullanabilirsiniz. Örneğin:
// 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 tamamını referans belgelerinde bulabilirsiniz.
Türler
BasePartial
Özellikler
-
additionalManifestEntries
(dize | ManifestEntry)[] isteğe bağlı
Derleme yapılandırmasının bir parçası olarak oluşturulan girişlere ek olarak, önceden önbelleğe alınacak girişlerin listesi.
-
dontCacheBustURLsMatching
RegExp isteğe bağlı
Bununla eşleşen öğelerin, URL'leri aracılığıyla benzersiz bir şekilde sürüm oluşturulduğu ve önbelleği doldururken yapılan normal HTTP önbellek bozma işleminden muaf olduğu varsayılır. Zorunlu olmamakla birlikte, mevcut derleme işleminiz her dosya adına zaten bir
[hash]
değeri ekliyorsa önbelleğe alma işlemi sırasında kullanılan bant genişliğini azaltacağından bunu algılayacak bir RegExp sağlamanız önerilir. -
manifestTransforms
ManifestTransform[] isteğe bağlı
Oluşturulan manifeste sıralı olarak uygulanacak bir veya daha fazla işlevdir.
modifyURLPrefix
veyadontCacheBustURLsMatching
de belirtilmişse önce bunlara karşılık gelen dönüşümler uygulanır. -
maximumFileSizeToCacheInBytes
numara 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, kalıplarınızdan biriyle yanlışlıkla eşleşen çok büyük dosyaları yanlışlıkla önbelleğe almanızı önler.
-
modifyURLPrefix
isteğe bağlı
Bir nesne eşleme dizesi, değiştirme dizesi değerlerine ön ek getiriyor. Bu özellik, örneğin web barındırma kurulumunuz yerel dosya sistemi kurulumunuzla eşleşmiyorsa manifest girişinden bir yol önekini kaldırmak veya eklemek için kullanılabilir. Daha fazla esnekliğe sahip alternatif olarak
manifestTransforms
seçeneğini kullanabilir ve sağladığınız mantığı kullanarak manifest'teki girişleri 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
<GetManifestResult"manifestEntries"
> & nesneyi atla
Özellikler
-
filePaths
dize[]
GeneratePartial
Özellikler
-
babelPresetEnvTargets
string[] isteğe bağlı
Varsayılan değer: ["chrome >= 56"]
Hizmet çalışanı paketini çevirirken
babel-preset-env
öğesine iletilecek hedefler. -
cacheId
string isteğe bağlı
Önbellek adlarının başına eklenecek isteğe bağlı kimlik. Bu, öncelikli olarak aynı
http://localhost:port
kaynağından birden fazla sitenin yayınlanabileceği yerel geliştirme için yararlıdır. -
cleanupOutdatedCaches
boole isteğe bağlı
Varsayılan değer: false
Workbox'ın eski, uyumsuz sürümler tarafından oluşturulan ön önbellekleri tanımlamaya ve silmeye çalışıp çalışmayacağı.
-
clientsClaim
boole isteğe bağlı
Varsayılan değer: false
Service Worker'ın, etkinleştirilir etkinleştirilmez mevcut istemcileri kontrol etmeye başlayıp başlamayacağı.
-
directoryIndex
string isteğe bağlı
/
ile biten URL için gezinme isteği önceden önbelleğe alınmış bir URL ile eşleşemezse bu değer URL'ye eklenir ve ön önbellek eşleşmesi için kontrol edilir. Bu, web sunucunuzun dizin dizini için kullandığı değere ayarlanmalıdır. -
disableDevLogs
boole isteğe bağlı
Varsayılan değer: false
-
ignoreURLParametersMatching
RegExp[] isteğe bağlı
Bu dizideki RegExp'lerden biriyle eşleşen tüm arama parametresi adları, ön önbellek eşleşmesi aranmadan önce kaldırılır. Bu, kullanıcılarınız trafiğin kaynağını izlemek için kullanılan URL parametreleri gibi URL parametreleri için istekte bulunduğunda yararlı olur. Sağlanmazsa varsayılan değer
[/^utm_/, /^fbclid$/]
olur. -
importScripts
string[] isteğe bağlı
Oluşturulan Service Worker dosyasının içinde
importScripts()
'e iletilmesi gereken JavaScript dosyalarının listesi. Bu, Workbox'ın üst düzey Service Worker dosyanızı oluşturmasına izin vermek ancak push etkinlik işleyici gibi bazı ek kodlar eklemek istediğinizde kullanışlıdır. -
inlineWorkboxRuntime
boole isteğe bağlı
Varsayılan değer: false
Workbox kitaplığı için çalışma zamanı kodunun üst düzey hizmet çalışanına mı dahil edileceği yoksa hizmet çalışanıyla birlikte dağıtılması gereken ayrı bir dosyaya bölünmesi mi gerektiği. Çalışma zamanını ayrı tutmak, üst düzey Service Worker'ınız her değiştiğinde kullanıcıların Workbox kodunu yeniden indirmek zorunda kalmayacağı anlamına gelir.
-
mod
string isteğe bağlı
Varsayılan değer: "production"
"Üretim" değerine ayarlanırsa hata ayıklama bilgilerini içermeyen optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmazsa
process.env.NODE_ENV
değeri kullanılır ve bu değere sahip olmazsa'production'
değerine döner. -
string isteğe bağlı
Varsayılan değer: null
Belirtilirse önceden önbelleğe alınmamış URL'lere ilişkin tüm gezinme istekleri, sağlanan URL'deki HTML ile yerine getirilir. Önbellek manifestinizde listelenen bir HTML dokümanının URL'sini iletmeniz gerekir. Bu şablon, tüm gezinmelerin ortak Uygulama Kabuğu HTML'sini kullanmasını istediğiniz Tek Sayfalık Uygulama senaryosunda kullanılmak üzere tasarlanmıştır.
-
RegExp[] isteğe bağlı
Yapılandırılmış
navigateFallback
davranışının geçerli olduğu URL'leri kısıtlayan isteğe bağlı bir normal ifade dizisi. Bu, sitenizin URL'lerinin yalnızca bir alt kümesinin Tek Sayfalık Uygulamanın parçası olarak değerlendirilmesi gerektiği durumlarda faydalıdır. HemnavigateFallbackDenylist
hem denavigateFallbackAllowlist
yapılandırılırsa reddedilenler listesi önceliklidir.Not: Bu RegExp'ler, gezinme sırasında her hedef URL ile karşılaştırılabilir. Karmaşık RegExp'ler 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ılmış
navigateFallback
davranışının geçerli olduğu URL'leri kısıtlayan isteğe bağlı bir normal ifade dizisi. Bu işlem, sitenizin URL'lerinin yalnızca bir alt kümesinin Tek Sayfalık Uygulamanın parçası olarak değerlendirilmesi gerekiyorsa yararlı olur. HemnavigateFallbackDenylist
hem denavigateFallbackAllowlist
yapılandırılırsa reddedilenler listesi öncelikli olur.Not: Bu RegExp'ler, gezinme sırasında her hedef URL ile karşılaştırılabilir. Karmaşık RegExp'ler kullanmaktan kaçının. Aksi takdirde kullanıcılarınız sitenizde gezinirken gecikmelerle karşılaşabilir.
-
boole isteğe bağlı
Varsayılan değer: false
Oluşturulan hizmet çalışanında gezinme ön yüklemesinin etkinleştirilip etkinleştirilmeyeceği. Doğru değerine ayarlandığında gezinme istekleriyle eşleşecek bir uygun yanıt stratejisi oluşturmak ve önceden yüklenmiş yanıttan yararlanmak için
runtimeCaching
kullanmanız gerekir. -
offlineGoogleAnalytics
boole | GoogleAnalyticsInitializeOptions isteğe bağlı
Varsayılan değer: false
Çevrimdışı Google Analytics desteğinin dahil edilip edilmeyeceğini kontrol eder.
true
olduğundaworkbox-google-analytics
initialize()
aracına yapılan çağrı, oluşturduğunuz hizmet çalışanına eklenir.Object
değerine ayarlandığında bu nesne,initialize()
çağrısına iletilerek davranışı özelleştirmenize olanak tanır. -
runtimeCaching
RuntimeCaching[] isteğe bağlı
Hizmet çalışanı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. Daha sonra bunlar, tanımladığınız eşleştirme ve işleyici yapılandırması kullanılarak
workbox-routing.registerRoute
çağrılarına dönüştürülür.Tüm seçenekler için
workbox-build.RuntimeCaching
belgelerine bakın. Aşağıdaki örnekte iki çalışma zamanı rotası tanımlanmış tipik bir yapılandırma gösterilmektedir: -
skipWaiting
boole isteğe bağlı
Varsayılan değer: false
Oluşturulan hizmet çalışanına koşulsuz bir çağrının
skipWaiting()
eklenip eklenmeyeceğini belirtir.false
değerine ayarlanırsa bunun yerine birmessage
işleyicisi eklenir. Böylece, istemci sayfalarının bekleyen bir hizmet çalışanındapostMessage({type: 'SKIP_WAITING'})
yöntemini çağırarakskipWaiting()
tetikleyicisini tetiklemesine izin verilir. -
kaynak eşleme
boole isteğe bağlı
Varsayılan değer: true
Oluşturulan hizmet çalışanı dosyaları için sourcemap oluşturulup oluşturulmayacağı.
GenerateSWOptions
Tür
GetManifestOptions
GetManifestResult
Özellikler
-
adet
sayı
-
manifestEntries
-
beden
sayı
-
uyarılar
dize[]
GlobPartial
Özellikler
-
globFollow
boole isteğe bağlı
Varsayılan değer: true
Önbellek öncesi manifest oluşturulurken sembolik bağlantıların uygulanıp uygulanmayacağını belirler. Daha fazla bilgi için
glob
belgelerindekifollow
tanımına bakın. -
globIgnores
string[] isteğe bağlı
Varsayılan değer: ["**\/node_modules\/**\/*"]
Önbellek manifesti oluştururken her zaman hariç tutulacak dosyalarla eşleşen bir kalıp grubu. Daha fazla bilgi için
glob
belgelerindekiignore
tanımına bakın. -
globPatterns
string[] isteğe bağlı
Varsayılan değer: ["**\/*.{js,wasm,css,html}"]
Bu kalıplardan herhangi biriyle eşleşen dosyalar ön önbellek manifestine dahil edilir. Daha fazla bilgi için
glob
hakkındaki yardım makalesini inceleyin. -
globStrict
boole isteğe bağlı
Varsayılan değer: true
Doğru değerine ayarlanırsa ön önbelleğe alma manifesti oluştururken bir dizin okuma hatası, derlemenin başarısız olmasına neden olur. Yanlış değerine ayarlanırsa sorunlu dizin atlanır. Daha fazla bilgi için
glob
belgelerindekistrict
tanımına bakın. -
templatedURLs
isteğe bağlı
Bir URL, sunucu tarafı mantığına göre oluşturulursa içeriğin içeriği birden fazla dosyaya veya başka bir benzersiz dize değerine bağlı olabilir. Bu nesnedeki anahtarlar sunucu tarafından oluşturulan URL'lerdir. Değerler bir dize dizisiyse
glob
kalıpları olarak yorumlanır ve kalıplarla eşleşen tüm dosyaların içeriği URL'nin benzersiz bir sürümünü oluşturmak için kullanılır. Tek bir dizeyle kullanılırsa belirli bir URL için oluşturduğunuz benzersiz sürüm oluşturma bilgileri olarak yorumlanır.
InjectManifestOptions
Tür
InjectPartial
Özellikler
-
injectionPoint
string isteğe bağlı
Varsayılan değer: "self.__WB_MANIFEST"
swSrc
dosyasının içinde bulunacak dize. Bulunan dosya, oluşturulan ön önbellek manifestiyle değiştirilir. -
swSrc
dize
Derleme işlemi sırasında okunacak olan hizmet çalışanı dosyasının, mevcut çalışma dizinine göreli yolu ve dosya adı.
ManifestEntry
Özellikler
-
doğruluk
string isteğe bağlı
-
düzeltme
dize
-
url
dize
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Tür
işlev
Parametreler
-
manifestEntries
(ManifestEntry ve nesne)[]
-
beden
sayı
-
-
derleme
bilinmeyen isteğe bağlı
İlerlemeler
ManifestTransformResult
Özellikler
-
manifest
(ManifestEntry ve nesne)[]
-
beden
sayı
-
-
uyarılar
string[] isteğe bağlı
OptionalGlobDirectoryPartial
Özellikler
-
globDirectory
string isteğe bağlı
globPatterns
ürününü eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizinle ilişkilidir.
RequiredGlobDirectoryPartial
Özellikler
-
globDirectory
dize
globPatterns
ürününü eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizinle ilişkilidir.
RequiredSWDestPartial
Özellikler
-
swDest
dize
Derleme işlemi tarafından oluşturulacak hizmet çalışanı dosyasının, geçerli çalışma dizinine göreli yolu ve dosya adı. Kod, ".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
öğelerinden birini kullanmak için adını (ör.'NetworkFirst'
) girin. Alternatif olarak, özel yanıt mantığına sahip birworkbox-core.RouteHandler
geri çağırma işlevi de olabilir. -
method
HTTPMethod isteğe bağlı
Varsayılan değer: "GET"
Eşleştirilecek HTTP yöntemi.
'POST'
,'PUT'
veya başka bir istek türünü açıkça eşleştirmeniz gerekmediği sürece'GET'
için varsayılan değer normalde yeterlidir. -
seçenekler
isteğe bağlı
-
backgroundSync
isteğe bağlı
Bunu yapılandırırsanız
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-background-sync.BackgroundSyncPlugin
örneği eklenir.-
ad
dize
-
seçenekler
QueueOptions isteğe bağlı
-
-
broadcastUpdate
isteğe bağlı
Bunu yapılandırırsanız
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-broadcast-update.BroadcastUpdatePlugin
örneği eklenir.-
channelName
string isteğe bağlı
-
seçenekler
-
-
cacheName
string isteğe bağlı
Değer sağlanırsa
handler
içinde yapılandırılanworkbox-strategies
içincacheName
özelliği ayarlanır. -
cacheableResponse
CacheableResponseOptions isteğe bağlı
Bunu yapılandırırsanız
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-cacheable-response.CacheableResponsePlugin
örneği eklenir. -
expiration
ExpirationPluginOptions isteğe bağlı
Bunu yapılandırırsanız
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-expiration.ExpirationPlugin
örneği eklenir. -
fetchOptions
RequestInit isteğe bağlı
Bunu yapılandırırsanız
fetchOptions
değeri,handler
içinde yapılandırılanworkbox-strategies
öğesine aktarılır. -
matchOptions
CacheQueryOptions isteğe bağlı
Bunu yapılandırırsanız
matchOptions
değeri,handler
içinde yapılandırılanworkbox-strategies
öğesine aktarılır. -
networkTimeoutSeconds
numara isteğe bağlı
Değer sağlanırsa
handler
içinde yapılandırılanworkbox-strategies
içinnetworkTimeoutSeconds
özelliği ayarlanır. Yalnızca'NetworkFirst'
ve'NetworkOnly'
öğelerininnetworkTimeoutSeconds
desteklediğini unutmayın. -
plugins
WorkboxPlugin[] isteğe bağlı
Bunu yapılandırmak, "kısayol" seçenekleri olmayan bir veya daha fazla Workbox eklentisinin (
workbox-expiration.ExpirationPlugin
içinexpiration
gibi) kullanılmasına izin verir. Burada sağlanan eklentiler,handler
öğesinde yapılandırılanworkbox-strategies
öğesine eklenir. -
precacheFallback
isteğe bağlı
Bunu yapılandırırsanız
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-precaching.PrecacheFallbackPlugin
örneği eklenir.-
fallbackURL
dize
-
-
rangeRequests
boole isteğe bağlı
Bunu etkinleştirirseniz
handler
içinde yapılandırılanworkbox-strategies
öğesine birworkbox-range-requests.RangeRequestsPlugin
örneği eklenir.
-
-
urlPattern
dize | RegExp | RouteMatchCallback
Bu eşleşme ölçütleri, yapılandırılmış işleyicinin önceden önbelleğe alınmış URL'lerden biriyle eşleşmeyen tüm istekler için yanıt oluşturup oluşturmayacağını belirler. Birden fazla
RuntimeCaching
yolu tanımlanırsa ilkurlPattern
eşleşmesi yanıt veren olur.Bu değer doğrudan
workbox-routing.registerRoute
'e geçirilen ilk parametreyle eşlenir. En fazla esneklik içinworkbox-core.RouteMatchCallback
işlevinin kullanılması önerilir.
StrategyName
Enum
"NetworkFirst"
WebpackGenerateSWOptions
Tür
WebpackGenerateSWPartial
Özellikler
-
importScriptsViaChunks
string[] isteğe bağlı
Web paketi parçalarının bir veya daha fazla adı. Bu parçaların içeriği,
importScripts()
çağrısı yapılarak oluşturulan Service Worker'a dahil edilir. -
swDest
string isteğe bağlı
Varsayılan değer: "service-worker.js"
Bu eklenti tarafından oluşturulan Service Worker dosyasının öğe adı.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Özellikler
-
compileSrc
boole isteğe bağlı
Varsayılan değer: true
true
(varsayılan) olduğundaswSrc
dosyası webpack tarafından derlenir.false
olduğunda derleme yapılmaz (vewebpackCompilationPlugins
kullanılamaz.) Manifest'i bir JSON dosyası gibi içine eklemek istiyorsanızfalse
olarak ayarlayın. -
swDest
string isteğe bağlı
Bu eklenti tarafından oluşturulacak Service Worker dosyasının öğe adı. Atlanırsa ad,
swSrc
adına dayalı olur. -
webpackCompilationPlugins
any[] isteğe bağlı
swSrc
giriş dosyası derlenirken kullanılacak isteğe bağlıwebpack
eklentileri. YalnızcacompileSrc
değeritrue
ise geçerlidir.
WebpackPartial
Özellikler
-
parçalar
string[] isteğe bağlı
Karşılık gelen çıkış dosyalarının ön önbellek manifestine eklenmesi gereken bir veya daha fazla yığın adı.
-
hariç tut
(dize | RegExp | işlev)[] isteğe bağlı
Öğeleri ön önbellek manifestinden hariç tutmak için bir veya daha fazla tanımlayıcı kullanılır. Bu,
webpack
ürününün standartexclude
seçeneğiyle aynı kurallara göre yorumlanır. Sağlanmazsa varsayılan değer[/\.map$/, /^manifest.*\.js$]
olur. -
excludeChunks
string[] isteğe bağlı
Karşılık gelen çıkış dosyalarının ön önbellek manifestinden hariç tutulması gereken bir veya daha fazla yığın adı.
-
dahil et
(dize | RegExp | işlev)[] isteğe bağlı
Öğeleri ön önbellek manifestine eklemek için kullanılan bir veya daha fazla tanımlayıcı. Bu,
webpack
ürününün standartinclude
seçeneğiyle aynı kurallara göre yorumlanır. -
mod
string isteğe bağlı
"Üretim" değerine ayarlanırsa hata ayıklama bilgilerini içermeyen optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmazsa mevcut
webpack
derlemesinde yapılandırılanmode
değeri kullanılır.
Yöntemler
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Bu işlem, Workbox tarafından kullanılan bir çalışma zamanı kitaplığı grubunu, hizmet çalışanı dosyanızla birlikte dağıtılması gereken yerel bir dizine kopyalar.
Bu yerel kopyaları dağıtmaya alternatif olarak Workbox'ı resmi CDN URL'sinden kullanabilirsiniz.
Bu yöntem, workbox-build.injectManifest
kullanan ve Workbox'ın CDN kopyalarını kullanmak istemeyen geliştiricilerin yararınadır. workbox-build.generateSW
kullanan geliştiricilerin bu yöntemi açıkça çağırmaları gerekmez.
Parametreler
-
destDirectory
dize
Yeni kitaplık dizininin oluşturulacağı üst dizine giden yol.
İlerlemeler
-
Söz<dize>
Yeni oluşturulan dizinin adı.
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
)
Bu yöntem, sunduğunuz seçeneklere bağlı olarak, önbelleğe alınacak URL'lerin bir listesini oluşturur. Bu liste, "önbellek manifesti" olarak adlandırılır.
Ayrıca hizmet çalışanının davranışını yapılandıran, kullanması gereken tüm runtimeCaching
kuralları gibi ek seçenekleri de alır.
Önbellek manifestine ve ek yapılandırmaya göre, swDest
konumundaki diske kullanıma hazır bir hizmet çalışanı dosyası yazar.
// 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
-
config
İlerlemeler
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Bu yöntem, sunduğunuz seçeneklere bağlı olarak, "önbellek manifesti" olarak adlandırılan ve önbelleğe alınacak URL'lerin bir listesini, girişlerin sayısı ve boyutlarıyla ilgili ayrıntılarla birlikte, sunduğunuz seçeneklere dayalı olarak 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
-
config
İlerlemeler
-
Promise<GetManifestResult>
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
)
Parametreler
-
moduleName
dize
-
buildType
BuildType
İlerlemeler
-
dize
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Bu yöntem, sunduğunuz seçeneklere bağlı olarak, önbelleğe alınacak URL'lerin bir listesini oluşturur. Bu liste, "önbellek manifesti" olarak adlandırılır.
Manifest, swSrc
dosyasına yerleştirilir ve injectionPoint
yer tutucu dizesi, manifestin dosyanın nereye ekleneceğini belirler.
Manifest eklendiği son hizmet çalışanı dosyası, swDest
konumunda diske yazılır.
Bu yöntem swSrc
dosyanızı derlemez veya gruplandırmaz; yalnızca manifestin yerleştirilmesini 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
-
config
İlerlemeler
-
Promise<BuildResult>