workbox-build
modülü, düğüme dayalı bir derleme sürecine entegre edilir ve bir hizmet çalışanının tamamını veya yalnızca mevcut bir hizmet çalışanında kullanılabilecek ön önbelleğe alınacak öğelerin listesini oluşturabilir.
Çoğu geliştiricinin kullanacağı iki mod generateSW
ve injectManifest
'dur. Aşağıdaki soruların yanıtları, kullanılacak doğru modu ve yapılandırmayı seçmenize yardımcı olabilir.
Hangi modu kullanmalısınız?
generateSW
generateSW
modu, yapılandırma seçenekleri aracılığıyla özelleştirilmiş bir hizmet çalışanı dosyası oluşturur ve dosyayı diske yazar.
generateSW
ne zaman kullanılır?
- Dosyaları önceden önbelleğe almak istiyorsanız.
- Basit çalışma zamanında önbelleğe alma ihtiyaçlarınız varsa
generateSW
NE ZAMAN KULLANILMAMALIDIR?
- 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, önceden ö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?
- Hizmet çalışanınız üzerinde daha fazla kontrole sahip olmak istiyorsunuz.
- Dosyaları önceden önbelleğe almak istiyorsanız.
- Yönlendirmeyi ve stratejileri özelleştirmeniz gerekir.
- Hizmet çalışanınızı diğer platform özellikleriyle (ör. Web Push) kullanmak istiyorsanız.
injectManifest
NE ZAMAN KULLANILMAMALIDIR?
- Sitenize servis çalışanı eklemenin en kolay yolunu arıyorsunuz.
generateSW
Mod
generateSW
modunu, aşağıdaki gibi en yaygın yapılandırma seçeneklerini kullanarak düğüme dayalı bir derleme komut dosyasında 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ındaki önbelleğe alma kuralları için önbelleğe alma kurulumu içeren bir hizmet çalışanı oluşturur.
Yapılandırma seçeneklerinin tamamını referans dokümanlarında bulabilirsiniz.
injectManifest
Mod
injectManifest
modunu, aşağıdaki gibi en yaygın yapılandırma seçeneklerini kullanarak düğüme dayalı bir derleme komut dosyasında 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 göre bir ön önbelleğe alma manifesti oluşturur ve bu manifesti mevcut hizmet çalışanı dosyanıza yerleştirir.
Yapılandırma seçeneklerinin tamamını referans dokümanlarında bulabilirsiniz.
Ek modlar
generateSW
veya injectManifest
'ün çoğu geliştiricinin ihtiyaçlarını karşılayacağını umuyoruz. Ancak workbox-build
tarafından desteklenen ve belirli kullanım alanları için uygun olabilecek başka bir mod da vardır.
getManifest
Mod
Bu mod, kavramsal olarak injectManifest
moduna benzer ancak manifest'i kaynak hizmet çalışanı dosyasına eklemek yerine, giriş sayısı ve toplam boyut hakkındaki bilgilerle birlikte manifest girişleri dizisini döndürür.
injectManifest
modunu, aşağıdaki gibi en yaygın yapılandırma seçeneklerini kullanarak düğüme dayalı bir derleme komut dosyasında 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 tamamını referans dokümanlarında 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şlerin yanı sıra önceden önbelleğe alınacak girişlerin listesi.
-
dontCacheBustURLsMatching
Normal ifade isteğe bağlı
Bu değerle eşleşen öğelerin, URL'leri aracılığıyla benzersiz bir şekilde sürümlendirildiği ve ön önbelleği doldururken yapılan normal HTTP önbelleği bozma işleminden muaf olduğu varsayılır. Zorunlu olmasa da mevcut derleme süreciniz 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ğı için bunu algılayacak bir normal ifade sağlamanız önerilir. -
manifestTransforms
ManifestTransform[] isteğe bağlı
Oluşturulan manifest'e sırayla uygulanacak bir veya daha fazla işlev.
modifyURLPrefix
veyadontCacheBustURLsMatching
da 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, kalıplarınızdan biriyle yanlışlıkla eşleşebilecek çok büyük dosyaları yanlışlıkla önbelleğe almanızı önleyebilirsiniz.
-
modifyURLPrefix
nesne isteğe bağlı
Dize ön eklerinin değiştirme dizesi değerleriyle eşlendiği bir nesne. Bu, web barındırma ayarlarınız yerel dosya sistemi ayarlarınızla eşleşmezse örneğin bir manifest girişinden yol ön ekini kaldırmak veya eklemek için kullanılabilir. Daha fazla esneklik sunan bir 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 çıkarın
Özellikler
-
filePaths
dize[]
GeneratePartial
Özellikler
-
babelPresetEnvTargets
string[] isteğe bağlı
Varsayılan değer: ["chrome >= 56"]
Hizmet çalışanı paketi derlenirken
babel-preset-env
'ye iletilecek hedefler. -
cacheId
dize isteğe bağlı
Önbelleğe alma adlarına eklenecek isteğe bağlı bir kimlik. Bu özellik, öncelikle aynı kaynaktan birden fazla sitenin yayınlanabileceği yerel geliştirme için yararlıdır.
http://localhost:port
-
cleanupOutdatedCaches
boole isteğe bağlı
Varsayılan değer: false
Workbox'un eski ve uyumlu olmayan sürümler tarafından oluşturulan ön önbellekleri tanımlayıp silmeye çalışıp çalışmayacağı.
-
clientsClaim
boole isteğe bağlı
Varsayılan değer: false
Hizmet çalışanının etkinleştiği anda mevcut istemcileri kontrol etmeye başlaması gerekip gerekmediği.
-
directoryIndex
dize isteğe bağlı
/
ile biten bir URL için yönlendirme isteği, önceden önbelleğe alınmış bir URL ile eşleşmezse bu değer URL'ye eklenir ve önceden önbelleğe alınmış URL ile eşleşme olup olmadığı kontrol edilir. Bu, web sunucunuzun dizin dizini için kullandığı değerle 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ı, önbelleğe alma 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'ler isteyebilirse yararlıdır. Bu değer sağlanmazsa varsayılan değer
[/^utm_/, /^fbclid$/]
olur. -
importScripts
string[] isteğe bağlı
Oluşturulan hizmet çalışanı dosyasının içindeki
importScripts()
alanına aktarılması gereken JavaScript dosyalarının listesi. Bu, Workbox'un üst düzey hizmet çalışanı dosyanızı oluşturmasına izin vermek ancak bir push etkinliği dinleyicisi gibi ek kod eklemek istediğinizde kullanışlıdır. -
inlineWorkboxRuntime
boole isteğe bağlı
Varsayılan değer: false
Workbox kitaplığının çalışma zamanı kodunun üst düzey hizmet işleyiciye dahil edilip edilmeyeceğini veya hizmet işleyiciyle birlikte dağıtılması gereken ayrı bir dosyaya bölünüp bölünmeyeceğini belirtir. Çalışma zamanını ayrı tutmak, kullanıcıların üst düzey hizmet çalışanınızı her değiştirdiğinde Workbox kodunu yeniden indirmesi gerekmeyeceği anlamına gelir.
-
mod
dize isteğe bağlı
Varsayılan değer: "production"
"Üretim" olarak ayarlanırsa hata ayıklama bilgilerini hariç tutan optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmamışsa
process.env.NODE_ENV
değeri kullanılır. Bu değer kullanılamazsa'production'
değerine geri döner. -
dize isteğe bağlı
Varsayılan değer: null
Belirtiliyse önceden önbelleğe alınmayan URL'ler için tüm gezinme istekleri, sağlanan URL'deki HTML ile karşılanır. Ön önbelleğe alma manifestinizde listelenen bir HTML dokümanı URL'sini iletmeniz gerekir. Bu, tüm gezinme işlemlerinin ortak uygulama kabuğu HTML kullanmasını istediğiniz tek sayfalı uygulama senaryosuyla kullanılmalıdır.
-
RegExp[] isteğe bağlı
Yapılandırılmış
navigateFallback
davranışının hangi URL'ler için geçerli olacağını kısıtlayan isteğe bağlı bir normal ifade dizisi. Bu, sitenizin URL'lerinin yalnızca bir alt kümesinin Tek Sayfa Uygulaması'nın parçası olarak değerlendirilmesi gerektiğinde faydalıdır. HemnavigateFallbackDenylist
hem denavigateFallbackAllowlist
yapılandırılmışsa engellenenler listesi önceliklidir.Not: Bu normal ifade, gezinme sırasında her hedef URL'ye göre değerlendirilebilir. Karmaşık normal ifade 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 hangi URL'ler için geçerli olacağını kısıtlayan isteğe bağlı bir normal ifade dizisi. Bu, sitenizin URL'lerinin yalnızca bir alt kümesinin tek sayfalık uygulama kapsamında olduğu kabul edilmesi gerektiğinde faydalıdır. HemnavigateFallbackDenylist
hem denavigateFallbackAllowlist
yapılandırılmışsa engellenenler listesi önceliklidir.Not: Bu normal ifade, gezinme sırasında her hedef URL'ye göre değerlendirilebilir. Karmaşık normal ifade 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 önyüklemesinin etkinleştirilip etkinleştirilmeyeceği. Doğru olarak ayarlandığında, gezinme istekleriyle eşleşen uygun bir yanıt stratejisi oluşturmak ve önceden yüklenmiş yanıtı kullanmak için
runtimeCaching
değerini de 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ğunda,workbox-google-analytics
'uninitialize()
çağrısı oluşturulan servis çalışanınıza eklenir. BirObject
olarak ayarlandığında, bu nesneinitialize()
çağrısına iletilir ve davranışı özelleştirmenize olanak tanır. -
runtimeCaching
RuntimeCaching[] isteğe bağlı
Hizmet çalışanınızı oluşturmak için Workbox'un derleme araçlarını kullanırken bir veya daha fazla çalışma zamanı önbelleğe alma yapılandırması belirtebilirsiniz. Ardından, tanımladığınız eşleme ve işleyici yapılandırması kullanılarak
workbox-routing.registerRoute
çağrılarına çevrilir.Tüm seçenekler için
workbox-build.RuntimeCaching
belgelerine bakın. Aşağıdaki örnekte, iki çalışma zamanı yolunun tanımlandığı tipik bir yapılandırma gösterilmektedir: -
skipWaiting
boole isteğe bağlı
Varsayılan değer: false
Oluşturulan hizmet işleyiciye
skipWaiting()
için koşulsuz bir çağrı eklenip eklenmeyeceği.false
ise bunun yerine birmessage
dinleyici eklenir. Bu dinleyici, istemci sayfalarının bekleyen bir hizmet çalışanındapostMessage({type: 'SKIP_WAITING'})
'ı çağırarakskipWaiting()
'yi tetiklemesine olanak tanır. -
sourcemap
boole 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
dize[]
GlobPartial
Özellikler
-
globFollow
boole isteğe bağlı
Varsayılan değer: true
Ön önbelleğe alma manifesti oluşturulurken sembolik bağlantıların takip edilip edilmeyeceğini belirler. Daha fazla bilgi için
glob
dokümanlarındafollow
tanımına bakın. -
globIgnores
string[] isteğe bağlı
Varsayılan değer: ["**\/node_modules\/**\/*"]
Ön önbelleğe alma manifesti oluşturulurken her zaman hariç tutulacak dosyalarla eşleşen bir kalıp grubu. Daha fazla bilgi için
glob
dokümanlarındaignore
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 önbelleğe alma manifest dosyasına dahil edilir. Daha fazla bilgi için
glob
primerini inceleyin. -
globStrict
boole isteğe bağlı
Varsayılan değer: true
Doğru ise önbelleğe alma manifesti oluşturulurken bir dizin okunurken hata oluşursa derleme başarısız olur. Yanlış ise sorunlu dizin atlanır. Daha fazla bilgi için
glob
dokümanlarındastrict
tanımına bakın. -
templatedURLs
nesne isteğe bağlı
Bir URL, sunucu tarafı mantığına göre oluşturuluyorsa 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 şekilde sürümlendirilmesi için kullanılır. Tek bir dizeyle kullanılırsa belirli bir URL için oluşturduğunuz benzersiz sürüm bilgileri olarak yorumlanır.
InjectManifestOptions
Tür
InjectPartial
Özellikler
-
injectionPoint
dize isteğe bağlı
Varsayılan değer: "self.__WB_MANIFEST"
swSrc
dosyasında bulunacak dize. Bulunduğunda, oluşturulan ön önbelleğe alma manifesti ile değiştirilir. -
swSrc
dize
Derleme işlemi sırasında okunacak hizmet çalışanı dosyasının, geçerli çalışma dizine göre yolu ve dosya adı.
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,
)
Tür
işlev
Parametreler
-
manifestEntries
(ManifestEntry & object)[]
-
beden
sayı
-
-
derleme
unknown 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ı
globPatterns
ile eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizine görelidir.
RequiredGlobDirectoryPartial
Özellikler
-
globDirectory
dize
globPatterns
ile eşleştirmek istediğiniz yerel dizin. Yol, geçerli dizine görelidir.
RequiredSWDestPartial
Özellikler
-
swDest
dize
Derleme işlemi tarafından oluşturulacak hizmet çalışanı dosyasının, geçerli çalışma dizine göre yolu ve dosya adı. ".js" ile bitmelidir.
RuntimeCaching
Özellikler
-
handler
Bu, çalışma zamanı yolunun nasıl yanıt oluşturacağını belirler. Yerleşik
workbox-strategies
değerlerinden birini kullanmak için adını (ör.'NetworkFirst'
) belirtin. 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ü eşlemeniz gerektiği açıkça belirtilmediği sürece'GET'
varsayılan değeri genellikle yeterlidir. -
seçenekler
nesne isteğe bağlı
-
backgroundSync
nesne isteğe bağlı
Bu yapılandırıldığında,
handler
'de yapılandırılmışworkbox-strategies
'e birworkbox-background-sync.BackgroundSyncPlugin
örneği eklenir.-
ad
dize
-
seçenekler
QueueOptions isteğe bağlı
-
-
broadcastUpdate
nesne isteğe bağlı
Bu yapılandırıldığında,
handler
'de yapılandırılmışworkbox-strategies
'e birworkbox-broadcast-update.BroadcastUpdatePlugin
örneği eklenir.-
channelName
dize isteğe bağlı
-
seçenekler
-
-
cacheName
dize isteğe bağlı
Bu değer sağlanırsa
handler
'te yapılandırılanworkbox-strategies
özelliğinincacheName
özelliği ayarlanır. -
cacheableResponse
CacheableResponseOptions isteğe bağlı
Bu yapılandırıldığında,
handler
'de yapılandırılmışworkbox-strategies
'e birworkbox-cacheable-response.CacheableResponsePlugin
örneği eklenir. -
son geçerlilik tarihi
ExpirationPluginOptions isteğe bağlı
Bu yapılandırıldığında,
handler
'de yapılandırılmışworkbox-strategies
'e birworkbox-expiration.ExpirationPlugin
örneği eklenir. -
fetchOptions
RequestInit isteğe bağlı
Bu yapılandırıldığında
fetchOptions
değeri,handler
içinde yapılandırılmışworkbox-strategies
öğesine iletilir. -
matchOptions
CacheQueryOptions isteğe bağlı
Bu yapılandırıldığında
matchOptions
değeri,handler
'te yapılandırılmışworkbox-strategies
'ye iletilir. -
networkTimeoutSeconds
number isteğe bağlı
Bu değer sağlanırsa
handler
'te yapılandırılanworkbox-strategies
özelliğininnetworkTimeoutSeconds
özelliği ayarlanır.networkTimeoutSeconds
yalnızca'NetworkFirst'
ve'NetworkOnly'
tarafından desteklenir. -
plugins
WorkboxPlugin[] isteğe bağlı
Bu ayarı yapılandırmak, "kısayol" seçenekleri olmayan bir veya daha fazla Workbox eklentisinin (
workbox-expiration.ExpirationPlugin
içinexpiration
gibi) kullanılmasına olanak tanır. Burada sağlanan eklentiler,handler
içinde yapılandırılmışworkbox-strategies
öğesine eklenir. -
precacheFallback
nesne isteğe bağlı
Bu yapılandırıldığında,
handler
'de yapılandırılmışworkbox-strategies
'e birworkbox-precaching.PrecacheFallbackPlugin
örneği eklenir.-
fallbackURL
dize
-
-
rangeRequests
boole isteğe bağlı
Bu özelliği etkinleştirmek,
handler
'de yapılandırılmışworkbox-strategies
öğesine birworkbox-range-requests.RangeRequestsPlugin
örneği ekler.
-
-
urlPattern
string | RegExp | RouteMatchCallback
Bu eşleşme ölçütü, yapılandırılmış işleyicinin önceden önbelleğe alınmış URL'lerden biriyle eşleşmeyen istekler için yanıt oluşturup oluşturmayacağını belirler. Birden fazla
RuntimeCaching
yolu tanımlanmışsaurlPattern
eşleşen ilk yol yanıt verir.Bu değer, doğrudan
workbox-routing.registerRoute
parametresine iletilen ilk parametreyle eşlenir. En fazla esneklik içinworkbox-core.RouteMatchCallback
işlevi 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ının adı. Bu parçaların içeriği,
importScripts()
çağrısı aracılığıyla oluşturulan hizmet işleyiciye 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
boole isteğe bağlı
Varsayılan değer: true
true
(varsayılan) olduğundaswSrc
dosyası webpack tarafından derlenir.false
olduğunda derleme gerçekleşmez (vewebpackCompilationPlugins
kullanılamaz.) Manifesti örneğin bir JSON dosyasına eklemek istiyorsanızfalse
olarak ayarlayın. -
swDest
dize isteğe bağlı
Bu eklenti tarafından oluşturulacak hizmet çalışanı dosyasının öğe adı. Atlanırsa ad,
swSrc
adına göre belirlenir. -
webpackCompilationPlugins
any[] isteğe bağlı
swSrc
giriş dosyası derlenirken kullanılacak isteğe bağlıwebpack
eklentileri. YalnızcacompileSrc
true
ise geçerlidir.
WebpackPartial
Özellikler
-
büyük parçalar
string[] isteğe bağlı
İlgili çıkış dosyalarının önbelleğe alma manifest dosyasına dahil edilmesi gereken bir veya daha fazla parça adı.
-
hariç tut
(string | RegExp | function)[] isteğe bağlı
Öğeleri ön önbelleğe alma manifestinden hariç tutmak için kullanılan bir veya daha fazla belirteç. Bu,
webpack
'nin standartexclude
seçeneğiyle aynı kurallar doğrultusunda yorumlanır. Bu değer sağlanmazsa varsayılan değer[/\.map$/, /^manifest.*\.js$]
olur. -
excludeChunks
string[] isteğe bağlı
İlgili çıkış dosyalarının önbelleğe alma manifestinden hariç tutulması gereken bir veya daha fazla parça adı.
-
dahil et
(string | RegExp | function)[] isteğe bağlı
Öğeleri önbelleğe alma manifest dosyasına dahil etmek için kullanılan bir veya daha fazla belirteç. Bu,
webpack
'nin standartinclude
seçeneğiyle aynı kurallar doğrultusunda yorumlanır. -
mod
dize isteğe bağlı
"Üretim" olarak ayarlanırsa hata ayıklama bilgilerini hariç tutan optimize edilmiş bir hizmet çalışanı paketi oluşturulur. Burada açıkça yapılandırılmamışsa geçerli
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 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ğıtmanın alternatifi olarak, Workbox'u resmi CDN URL'sinden kullanabilirsiniz.
Bu yöntem, workbox-build.injectManifest
kullanan ve Workbox'un CDN kopyalarını kullanmayı tercih etmeyen 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,
)
Bu yöntem, sağladığınız seçeneklere göre önceden önbelleğe alınacak URL'lerin listesini oluşturur. Bu liste "önbelleğe alma manifesti" olarak adlandırılır.
Ayrıca, kullanması gereken runtimeCaching
kuralları gibi hizmet çalışanının davranışını yapılandıran ek seçenekleri de alır.
Önceden önbelleğe alma manifestini ve ek yapılandırmayı temel alarak swDest
adresinde diske 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
-
yapılandırma
İadeler
-
Promise<BuildResult>
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
)
Bu yöntem, sağladığınız seçeneklere göre girişlerin sayısı ve boyutlarıyla ilgili ayrıntıların yanı sıra önceden önbelleğe alınacak URL'lerin listesini ("önbelleğe alma manifesti" olarak adlandırılır) 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,
)
Parametreler
-
moduleName
dize
-
buildType
BuildType
İadeler
-
dize
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Bu yöntem, sağladığınız seçeneklere göre önceden önbelleğe alınacak URL'lerin listesini oluşturur. Bu liste "önbelleğe alma manifesti" olarak adlandırılır.
Manifest, swSrc
dosyasına eklenir ve yer tutucu dize injectionPoint
, manifestin dosyanın neresine ekleneceğini belirler.
Manifestin eklenmesiyle oluşturulan nihai hizmet çalışanı dosyası, swDest
adresinde diske yazılır.
Bu yöntem, swSrc
dosyanızı derlemez veya paketlemez. Yalnızca manifest'i 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>