çalışma kutusu oluşturma

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 veya dontCacheBustURLsMatching 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.

  • navigateFallback

    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.

  • navigateFallbackAllowlist

    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. Hem navigateFallbackDenylist hem de navigateFallbackAllowlist 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.

  • navigateFallbackDenylist

    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. Hem navigateFallbackDenylist hem de navigateFallbackAllowlist 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.

  • navigationPreload

    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'un initialize() çağrısı oluşturulan servis çalışanınıza eklenir. Bir Object olarak ayarlandığında, bu nesne initialize() ç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 bir message dinleyici eklenir. Bu dinleyici, istemci sayfalarının bekleyen bir hizmet çalışanında postMessage({type: 'SKIP_WAITING'})'ı çağırarak skipWaiting()'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

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ında follow 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ında ignore 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ında strict 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

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ı

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

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ğunda swSrc dosyası webpack tarafından derlenir. false olduğunda derleme gerçekleşmez (ve webpackCompilationPlugins kullanılamaz.) Manifesti örneğin bir JSON dosyasına eklemek istiyorsanız false 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ızca compileSrc 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 standart exclude 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 standart include 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ılan mode 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

İadeler

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

İadeler

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

İadeler