çalışma kutusu oluşturma

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. 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, 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 manifestTransforms seç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:port kaynak ü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_ENV değeri kullanılır. Bu değer de kullanılamazsa 'production' değeri kullanılır.

  • navigateFallback

    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.

  • navigateFallbackAllowlist

    RegExp[] isteğe bağlı

    Yapılandırılan navigateFallback davranışı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. Hem navigateFallbackDenylist hem de navigateFallbackAllowlist yapı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.

  • navigateFallbackDenylist

    RegExp[] isteğe bağlı

    Yapılandırılan navigateFallback davranışı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. Hem navigateFallbackDenylist hem de navigateFallbackAllowlist yapı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.

  • navigationPreload

    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. true olduğunda, workbox-google-analytics'nin initialize() ile yaptığı görüşme, oluşturulan hizmet çalışanıza eklenir. Object olarak 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.RuntimeCaching belgelerine 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. false ise bunun yerine message dinleyicisi eklenir. Bu sayede istemci sayfaları, bekleyen bir hizmet çalışanında postMessage({type: 'SKIP_WAITING'}) çağrısı yaparak skipWaiting() 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

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 follow tanımını glob belgelerinde 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 ignore tanımını glob belgelerinde 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 glob primer 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 glob modeli 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

InjectPartial

Özellikler

  • injectionPoint

    dize isteğe bağlı

    Varsayılan değer: "self.__WB_MANIFEST"

    swSrc dosyası 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ı

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öre belirlenir.

RequiredGlobDirectoryPartial

Özellikler

  • globDirectory

    dize

    globPatterns ile 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

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ğunda swSrc dosyası webpack tarafından derlenir. false olduğunda derleme gerçekleşmez (ve webpackCompilationPlugins kullanılamaz). Manifest dosyasını, örneğin bir JSON dosyasına yerleştirmek 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ı. Belirtilmezse 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

  • 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 standart exclude seç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 standart include seç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 webpack derlemesinde yapılandırılan mode değ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

İadeler

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

İadeler

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

İadeler