Modul workbox-build terintegrasi ke dalam proses build berbasis node dan dapat menghasilkan seluruh pekerja layanan, atau hanya membuat daftar aset untuk pra-cache yang dapat digunakan dalam pekerja layanan yang ada.
Dua mode yang akan digunakan sebagian besar developer adalah generateSW dan injectManifest. Jawaban atas pertanyaan berikut dapat membantu Anda memilih mode dan konfigurasi yang tepat untuk digunakan.
Mode yang Akan Digunakan
generateSW
Mode generateSW membuat file pekerja layanan untuk Anda, yang disesuaikan melalui opsi konfigurasi, dan menulisnya ke disk.
Kapan menggunakan generateSW
- Anda ingin melakukan pra-cache file.
- Anda memiliki kebutuhan caching runtime sederhana.
Kapan TIDAK boleh menggunakan generateSW
- Anda ingin menggunakan fitur Pekerja Layanan lainnya (yaitu Web Push).
- Anda ingin mengimpor skrip tambahan, atau menambahkan logika tambahan untuk strategi penyimpanan dalam cache kustom.
injectManifest
Mode injectManifest akan membuat daftar URL untuk di-precache, dan menambahkan manifes precache tersebut ke file pekerja layanan yang ada. Jika tidak, file akan dibiarkan apa adanya.
Kapan menggunakan injectManifest
- Anda ingin memiliki kontrol yang lebih besar atas pekerja layanan.
- Anda ingin melakukan pra-cache file.
- Anda perlu menyesuaikan pemilihan rute dan strategi.
- Anda ingin menggunakan pekerja layanan dengan fitur platform lainnya (misalnya, Web Push).
Kapan TIDAK boleh menggunakan injectManifest
- Anda menginginkan jalur termudah untuk menambahkan pekerja layanan ke situs Anda.
Mode generateSW
Anda dapat menggunakan mode generateSW dalam skrip build berbasis node, menggunakan opsi konfigurasi yang paling umum, seperti ini:
// 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.`);
});
Tindakan ini akan menghasilkan pekerja layanan dengan penyiapan pra-cache untuk semua file yang diambil oleh konfigurasi Anda, dan aturan cache runtime yang disediakan.
Kumpulan lengkap opsi konfigurasi dapat ditemukan di dokumentasi referensi.
Mode injectManifest
Anda dapat menggunakan mode injectManifest dalam skrip build berbasis node, menggunakan opsi konfigurasi yang paling umum, seperti ini:
// 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.`);
});
Tindakan ini akan membuat manifes pra-cache berdasarkan file yang diambil oleh konfigurasi Anda dan memasukkannya ke dalam file pekerja layanan yang ada.
Kumpulan lengkap opsi konfigurasi dapat ditemukan di dokumentasi referensi.
Mode tambahan
Kami berharap generateSW atau injectManifest akan sesuai dengan sebagian besar kebutuhan developer. Namun, ada satu mode lain yang didukung oleh workbox-build yang mungkin sesuai untuk kasus penggunaan tertentu.
Mode getManifest
Secara konseptual, ini mirip dengan mode injectManifest, tetapi bukan menambahkan manifes ke file pekerja layanan sumber, mode ini menampilkan array entri manifes, beserta informasi tentang jumlah entri dan ukuran total.
Anda dapat menggunakan mode injectManifest dalam skrip build berbasis node, menggunakan opsi konfigurasi yang paling umum, seperti ini:
// 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.
});
Kumpulan lengkap opsi konfigurasi dapat ditemukan di dokumentasi referensi.
Jenis
BasePartial
Properti
- 
    additionalManifestEntries(string | ManifestEntry)[] opsional Daftar entri yang akan dipra-cache, selain entri apa pun yang dibuat sebagai bagian dari konfigurasi build. 
- 
    dontCacheBustURLsMatchingRegexp opsional Aset yang cocok dengan ini akan diasumsikan memiliki versi unik melalui URL-nya, dan dikecualikan dari penghapusan cache HTTP normal yang dilakukan saat mengisi pra-cache. Meskipun tidak diperlukan, sebaiknya jika proses build yang ada sudah menyisipkan nilai [hash]ke dalam setiap nama file, Anda memberikan RegExp yang akan mendeteksinya, karena akan mengurangi bandwidth yang digunakan saat melakukan pra-cache.
- 
    manifestTransformsManifestTransform[] opsional Satu atau beberapa fungsi yang akan diterapkan secara berurutan terhadap manifes yang dihasilkan. Jika modifyURLPrefixataudontCacheBustURLsMatchingjuga ditentukan, transformasi yang sesuai akan diterapkan terlebih dahulu.
- 
    maximumFileSizeToCacheInBytesnumber opsional Nilai defaultnya adalah: 2097152 Nilai ini dapat digunakan untuk menentukan ukuran maksimum file yang akan di-pra-cache. Hal ini mencegah Anda melakukan pra-cache file yang sangat besar secara tidak sengaja yang mungkin tidak sengaja cocok dengan salah satu pola Anda. 
- 
    modifyURLPrefixobjek opsional Objek yang memetakan awalan string ke nilai string pengganti. Ini dapat digunakan untuk, misalnya, menghapus atau menambahkan awalan jalur dari entri manifes jika penyiapan hosting web Anda tidak cocok dengan penyiapan sistem file lokal Anda. Sebagai alternatif dengan fleksibilitas yang lebih besar, Anda dapat menggunakan opsi manifestTransformsdan menyediakan fungsi yang mengubah entri dalam manifes menggunakan logika apa pun yang Anda berikan.Contoh penggunaan: // Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Jenis
Menghapus objek& <GetManifestResult"manifestEntries" 
 >
Properti
- 
    filePathsstring[] 
GeneratePartial
Properti
- 
    babelPresetEnvTargetsstring[] opsional Nilai defaultnya adalah: ["chrome >= 56"] Target yang akan diteruskan ke babel-preset-envsaat mentranspile paket pekerja layanan.
- 
    cacheIdstring opsional ID opsional yang akan ditambahkan ke nama cache. Hal ini terutama berguna untuk pengembangan lokal, dengan beberapa situs yang dapat ditayangkan dari origin http://localhost:portyang sama.
- 
    cleanupOutdatedCachesboolean opsional Nilai defaultnya adalah: false Apakah Workbox harus mencoba mengidentifikasi dan menghapus pra-cache apa pun yang dibuat oleh versi lama yang tidak kompatibel. 
- 
    clientsClaimboolean opsional Nilai defaultnya adalah: false Apakah pekerja layanan harus mulai mengontrol klien yang ada segera setelah diaktifkan. 
- 
    directoryIndexstring opsional Jika permintaan navigasi untuk URL yang diakhiri dengan /gagal cocok dengan URL yang di-cache sebelumnya, nilai ini akan ditambahkan ke URL dan akan diperiksa untuk menemukan kecocokan cache sebelumnya. Ini harus disetel ke server web yang Anda gunakan untuk indeks direktorinya.
- 
    disableDevLogsboolean opsional Nilai defaultnya adalah: false 
- 
    ignoreURLParametersMatchingRegExp[] opsional Setiap nama parameter penelusuran yang cocok dengan salah satu RegExp dalam array ini akan dihapus sebelum mencari kecocokan pra-cache. Hal ini berguna jika pengguna Anda mungkin meminta URL yang berisi, misalnya, parameter URL yang digunakan untuk melacak sumber traffic. Jika tidak diberikan, nilai defaultnya adalah [/^utm_/, /^fbclid$/].
- 
    importScriptsstring[] opsional Daftar file JavaScript yang harus diteruskan ke importScripts()di dalam file service worker yang dihasilkan. Hal ini berguna saat Anda ingin membiarkan Workbox membuat file pekerja layanan tingkat teratas, tetapi ingin menyertakan beberapa kode tambahan, seperti pemroses peristiwa push.
- 
    inlineWorkboxRuntimeboolean opsional Nilai defaultnya adalah: false Apakah kode runtime untuk library Workbox harus disertakan dalam pekerja layanan tingkat teratas, atau dibagi menjadi file terpisah yang perlu di-deploy bersama pekerja layanan. Memisahkan runtime berarti pengguna tidak perlu mendownload ulang kode Workbox setiap kali pekerja layanan tingkat atas Anda berubah. 
- 
    modestring opsional Nilai defaultnya adalah: "production" Jika ditetapkan ke 'production', paket pekerja layanan yang dioptimalkan yang mengecualikan info proses debug akan dihasilkan. Jika tidak dikonfigurasi secara eksplisit di sini, nilai process.env.NODE_ENVakan digunakan, dan jika gagal, nilai tersebut akan kembali ke'production'.
- 
    string opsional Nilai defaultnya adalah: null Jika ditentukan, semua permintaan navigasi untuk URL yang tidak dipra-cache akan dipenuhi dengan HTML di URL yang diberikan. Anda harus meneruskan URL dokumen HTML yang tercantum dalam manifes pra-cache. Ini dimaksudkan untuk digunakan dalam skenario Aplikasi Satu Halaman, tempat Anda ingin semua navigasi menggunakan HTML Shell Aplikasi umum. 
- 
    RegExp[] opsional Array ekspresi reguler opsional yang membatasi URL mana yang akan diterapkan oleh perilaku navigateFallbackyang dikonfigurasi. Hal ini berguna jika hanya sebagian URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Web Satu Halaman. JikanavigateFallbackDenylistdannavigateFallbackAllowlistdikonfigurasi, daftar tolak akan diprioritaskan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan RegExp yang kompleks, atau pengguna mungkin akan melihat penundaan saat menjelajahi situs Anda. 
- 
    RegExp[] opsional Array ekspresi reguler opsional yang membatasi URL mana yang akan diterapkan oleh perilaku navigateFallbackyang dikonfigurasi. Hal ini berguna jika hanya sebagian URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Web Satu Halaman. JikanavigateFallbackDenylistdannavigateFallbackAllowlistdikonfigurasi, daftar tolak akan diprioritaskan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan RegExp yang kompleks, atau pengguna mungkin akan melihat penundaan saat menjelajahi situs Anda. 
- 
    boolean opsional Nilai defaultnya adalah: false Apakah akan mengaktifkan pramuat navigasi di pekerja layanan yang dihasilkan atau tidak. Jika disetel ke benar (true), Anda juga harus menggunakan runtimeCachinguntuk menyiapkan strategi respons yang sesuai yang akan cocok dengan permintaan navigasi, dan menggunakan respons yang dimuat sebelumnya.
- 
    offlineGoogleAnalyticsboolean | GoogleAnalyticsInitializeOptions opsional Nilai defaultnya adalah: false Mengontrol apakah akan menyertakan dukungan untuk Google Analytics offline atau tidak. Jika true, panggilan keinitialize()workbox-google-analyticsakan ditambahkan ke pekerja layanan yang dihasilkan. Jika ditetapkan keObject, objek tersebut akan diteruskan ke panggilaninitialize(), sehingga Anda dapat menyesuaikan perilaku.
- 
    runtimeCachingRuntimeCaching[] opsional Saat menggunakan alat build Workbox untuk membuat pekerja layanan, Anda dapat menentukan satu atau beberapa konfigurasi penyimpanan dalam cache runtime. Kemudian, perintah ini diterjemahkan ke panggilan workbox-routing.registerRoutemenggunakan konfigurasi pencocokan dan pengendali yang Anda tentukan.Untuk semua opsi, lihat dokumentasi workbox-build.RuntimeCaching. Contoh di bawah menunjukkan konfigurasi standar, dengan dua rute runtime yang ditentukan:
- 
    skipWaitingboolean opsional Nilai defaultnya adalah: false Apakah akan menambahkan panggilan tanpa syarat ke skipWaiting()ke service worker yang dihasilkan. Jikafalse, pemrosesmessageakan ditambahkan, sehingga halaman klien dapat memicuskipWaiting()dengan memanggilpostMessage({type: 'SKIP_WAITING'})pada pekerja layanan yang menunggu.
- 
    sourcemapboolean opsional Nilai defaultnya adalah: true Apakah akan membuat sourcemap untuk file pekerja layanan yang dihasilkan. 
GenerateSWOptions
Jenis
GetManifestOptions
GetManifestResult
Properti
- 
    jumlahangka 
- 
    manifestEntries
- 
    ukuranangka 
- 
    peringatanstring[] 
GlobPartial
Properti
- 
    globFollowboolean opsional Nilai defaultnya adalah: true Menentukan apakah symlink diikuti atau tidak saat membuat manifes pra-cache. Untuk mengetahui informasi selengkapnya, lihat definisi followdalam dokumentasiglob.
- 
    globIgnoresstring[] opsional Nilai defaultnya adalah: ["**\/node_modules\/**\/*"] Kumpulan pola yang cocok dengan file yang akan selalu dikecualikan saat membuat manifes pra-cache. Untuk mengetahui informasi selengkapnya, lihat definisi ignoredalam dokumentasiglob.
- 
    globPatternsstring[] opsional Nilai defaultnya adalah: ["**\/*.{js,wasm,css,html}"] File yang cocok dengan salah satu pola ini akan disertakan dalam manifes precache. Untuk informasi selengkapnya, lihat primer glob.
- 
    globStrictboolean opsional Nilai defaultnya adalah: true Jika benar, error saat membaca direktori saat membuat manifes pra-cache akan menyebabkan build gagal. Jika salah, direktori yang bermasalah akan dilewatkan. Untuk mengetahui informasi selengkapnya, lihat definisi strictdalam dokumentasiglob.
- 
    templatedURLsobjek opsional Jika URL dirender berdasarkan beberapa logika sisi server, kontennya mungkin bergantung pada beberapa file atau beberapa nilai string unik lainnya. Kunci dalam objek ini adalah URL yang dirender server. Jika nilainya berupa array string, nilai tersebut akan ditafsirkan sebagai pola glob, dan konten file apa pun yang cocok dengan pola akan digunakan untuk membuat versi URL secara unik. Jika digunakan dengan satu string, string tersebut akan ditafsirkan sebagai informasi pembuatan versi unik yang telah Anda buat untuk URL tertentu.
InjectManifestOptions
Jenis
InjectPartial
Properti
- 
    injectionPointstring opsional Nilai defaultnya adalah: "self.__WB_MANIFEST" String yang akan ditemukan di dalam file swSrc. Setelah ditemukan, manifes tersebut akan diganti dengan manifes pra-cache yang dihasilkan.
- 
    swSrcstring Jalur dan nama file file pekerja layanan yang akan dibaca selama proses build, relatif terhadap direktori kerja saat ini. 
ManifestEntry
Properti
- 
    integritasstring opsional 
- 
    revisistring 
- 
    urlstring 
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Jenis
fungsi
Parameter
- 
    manifestEntries(ManifestEntry & object)[] - 
    ukuranangka 
 
- 
    
- 
    kompilasiunknown opsional 
Hasil
- 
            Promise<ManifestTransformResult> | ManifestTransformResult 
ManifestTransformResult
Properti
- 
    manifes(ManifestEntry & object)[] - 
    ukuranangka 
 
- 
    
- 
    peringatanstring[] opsional 
OptionalGlobDirectoryPartial
Properti
- 
    globDirectorystring opsional Direktori lokal yang ingin Anda cocokkan dengan globPatterns. Jalur ini relatif terhadap direktori saat ini.
RequiredGlobDirectoryPartial
Properti
- 
    globDirectorystring Direktori lokal yang ingin Anda cocokkan dengan globPatterns. Jalur ini relatif terhadap direktori saat ini.
RequiredSWDestPartial
Properti
- 
    swDeststring Jalur dan nama file file pekerja layanan yang akan dibuat oleh proses build, relatif terhadap direktori kerja saat ini. Nama file harus berakhir dengan '.js'. 
RuntimeCaching
Properti
- 
    handlerIni menentukan cara rute runtime menghasilkan respons. Untuk menggunakan salah satu workbox-strategiesbawaan, berikan namanya, seperti'NetworkFirst'. Atau, ini dapat berupa fungsi callbackworkbox-core.RouteHandlerdengan logika respons kustom.
- 
    methodHTTPMethod opsional Nilai defaultnya adalah: "GET" Metode HTTP yang akan dicocokkan. Nilai default 'GET'biasanya cukup, kecuali jika Anda secara eksplisit perlu mencocokkan'POST','PUT', atau jenis permintaan lainnya.
- 
    opsiobjek opsional - 
    backgroundSyncobjek opsional Mengonfigurasi ini akan menambahkan instance workbox-background-sync.BackgroundSyncPluginkeworkbox-strategiesyang dikonfigurasi dihandler.- 
    namastring 
- 
    opsiQueueOptions opsional 
 
- 
    
- 
    broadcastUpdateobjek opsional Mengonfigurasi ini akan menambahkan instance workbox-broadcast-update.BroadcastUpdatePluginkeworkbox-strategiesyang dikonfigurasi dihandler.- 
    channelNamestring opsional 
 
- 
    
- 
    cacheNamestring opsional Jika disediakan, tindakan ini akan menetapkan properti cacheNamedariworkbox-strategiesyang dikonfigurasi dihandler.
- 
    cacheableResponseCacheableResponseOptions opsional Mengonfigurasi ini akan menambahkan instance workbox-cacheable-response.CacheableResponsePluginkeworkbox-strategiesyang dikonfigurasi dihandler.
- 
    masa berlakuExpirationPluginOptions opsional Mengonfigurasi ini akan menambahkan instance workbox-expiration.ExpirationPluginkeworkbox-strategiesyang dikonfigurasi dihandler.
- 
    fetchOptionsRequestInit opsional Mengonfigurasi ini akan meneruskan nilai fetchOptionskeworkbox-strategiesyang dikonfigurasi dihandler.
- 
    matchOptionsCacheQueryOptions opsional Mengonfigurasi ini akan meneruskan nilai matchOptionskeworkbox-strategiesyang dikonfigurasi dihandler.
- 
    networkTimeoutSecondsnumber opsional Jika disediakan, tindakan ini akan menetapkan properti networkTimeoutSecondsdariworkbox-strategiesyang dikonfigurasi dihandler. Perhatikan bahwa hanya'NetworkFirst'dan'NetworkOnly'yang mendukungnetworkTimeoutSeconds.
- 
    pluginWorkboxPlugin[] opsional Mengonfigurasi ini memungkinkan penggunaan satu atau beberapa plugin Workbox yang tidak memiliki opsi "pintasan" (seperti expirationuntukworkbox-expiration.ExpirationPlugin). Plugin yang disediakan di sini akan ditambahkan keworkbox-strategiesyang dikonfigurasi dihandler.
- 
    precacheFallbackobjek opsional Mengonfigurasi ini akan menambahkan instance workbox-precaching.PrecacheFallbackPluginkeworkbox-strategiesyang dikonfigurasi dihandler.- 
    fallbackURLstring 
 
- 
    
- 
    rangeRequestsboolean opsional Mengaktifkannya akan menambahkan instance workbox-range-requests.RangeRequestsPluginkeworkbox-strategiesyang dikonfigurasi dihandler.
 
- 
    
- 
    urlPatternstring | RegExp | RouteMatchCallback Kriteria pencocokan ini menentukan apakah pengendali yang dikonfigurasi akan menghasilkan respons untuk permintaan apa pun yang tidak cocok dengan salah satu URL yang di-cache sebelumnya. Jika beberapa rute RuntimeCachingditentukan, rute pertama yangurlPattern-nya cocok akan menjadi rute yang merespons.Nilai ini langsung dipetakan ke parameter pertama yang diteruskan ke workbox-routing.registerRoute. Sebaiknya gunakan fungsiworkbox-core.RouteMatchCallbackuntuk fleksibilitas terbesar.
StrategyName
Enum
"CacheFirst" 
 
"CacheOnly" 
 
"NetworkFirst" 
 
"NetworkOnly" 
 
"StaleWhileRevalidate" 
 
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Properti
- 
    importScriptsViaChunksstring[] opsional Satu atau beberapa nama bagian webpack. Konten potongan tersebut akan disertakan dalam pekerja layanan yang dihasilkan, melalui panggilan ke importScripts().
- 
    swDeststring opsional Nilai defaultnya adalah: "service-worker.js" Nama aset file pekerja layanan yang dibuat oleh plugin ini. 
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Properti
- 
    compileSrcboolean opsional Nilai defaultnya adalah: true Jika true(default), fileswSrcakan dikompilasi oleh webpack. Jikafalse, kompilasi tidak akan terjadi (danwebpackCompilationPluginstidak dapat digunakan.) Tetapkan kefalsejika Anda ingin memasukkan manifes ke dalam, misalnya, file JSON.
- 
    swDeststring opsional Nama aset file pekerja layanan yang akan dibuat oleh plugin ini. Jika dihilangkan, nama akan didasarkan pada nama swSrc.
- 
    webpackCompilationPluginsany[] opsional Plugin webpackopsional yang akan digunakan saat mengompilasi file inputswSrc. Hanya berlaku jikacompileSrcadalahtrue.
WebpackPartial
Properti
- 
    potonganstring[] opsional Satu atau beberapa nama bagian yang file outputnya harus disertakan dalam manifes pra-cache. 
- 
    kecualikan(string | RegExp | function)[] opsional Satu atau beberapa penentu yang digunakan untuk mengecualikan aset dari manifes pra-cache. Ini ditafsirkan dengan mengikuti aturan yang sama seperti opsi excludestandarwebpack. Jika tidak diberikan, nilai defaultnya adalah[/\.map$/, /^manifest.*\.js$].
- 
    excludeChunksstring[] opsional Satu atau beberapa nama bagian yang file output-nya harus dikecualikan dari manifes pra-cache. 
- 
    sertakan(string | RegExp | function)[] opsional Satu atau beberapa penentu yang digunakan untuk menyertakan aset dalam manifes pra-cache. Ini ditafsirkan dengan mengikuti aturan yang sama seperti opsi includestandarwebpack.
- 
    modestring opsional Jika ditetapkan ke 'production', paket pekerja layanan yang dioptimalkan yang mengecualikan info proses debug akan dihasilkan. Jika tidak dikonfigurasi secara eksplisit di sini, nilai modeyang dikonfigurasi dalam kompilasiwebpacksaat ini akan digunakan.
Metode
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Tindakan ini akan menyalin serangkaian library runtime yang digunakan oleh Workbox ke dalam direktori lokal, yang harus di-deploy bersama file pekerja layanan Anda.
Sebagai alternatif untuk men-deploy salinan lokal ini, Anda dapat menggunakan Workbox dari URL CDN resminya.
Metode ini ditampilkan untuk kepentingan developer yang menggunakan
workbox-build.injectManifest yang lebih memilih untuk tidak menggunakan salinan CDN Workbox. Developer yang menggunakan
workbox-build.generateSW tidak perlu
memanggil metode ini secara eksplisit.
Parameter
- 
    destDirectorystring Jalur ke direktori induk tempat direktori library baru akan dibuat. 
Hasil
- 
            Promise<string> Nama direktori yang baru dibuat. 
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Metode ini membuat daftar URL untuk dipra-cache, yang disebut sebagai "manifes pre-cache", berdasarkan opsi yang Anda berikan.
Fungsi ini juga menggunakan opsi tambahan yang mengonfigurasi perilaku pekerja layanan, seperti aturan runtimeCaching yang harus digunakan.
Berdasarkan manifes pra-cache dan konfigurasi tambahan, file ini menulis
file pekerja layanan siap pakai ke disk di swDest.
// 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: '...',
});
Parameter
- 
    config
Hasil
- 
            Promise<BuildResult> 
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Metode ini menampilkan daftar URL untuk dipra-cache, yang disebut sebagai "manifes pre-cache", beserta detail tentang jumlah entri dan ukurannya, berdasarkan opsi yang Anda berikan.
// 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: ...,
});
Parameter
- 
    config
Hasil
- 
            Promise<GetManifestResult> 
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Parameter
- 
    moduleNamestring 
- 
    buildTypeBuildType 
Hasil
- 
            string 
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Metode ini membuat daftar URL untuk dipra-cache, yang disebut sebagai "manifes pre-cache", berdasarkan opsi yang Anda berikan.
Manifes dimasukkan ke dalam file swSrc, dan string placeholder
injectionPoint menentukan lokasi manifes dalam file.
File pekerja layanan akhir, dengan manifes yang dimasukkan, ditulis ke
disk di swDest.
Metode ini tidak akan mengompilasi atau memaketkan file swSrc Anda; metode ini hanya menangani
injeksi manifes.
// 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: '...',
});
Parameter
- 
    config
Hasil
- 
            Promise<BuildResult>