Modul workbox-build terintegrasi ke dalam proses build berbasis node dan dapat menghasilkan seluruh pekerja layanan, atau hanya menghasilkan daftar aset untuk melakukan 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 menuliskannya ke disk.
Kapan menggunakan generateSW
- Anda ingin melakukan pra-cache file.
- Anda memiliki kebutuhan caching runtime sederhana.
Kapan sebaiknya TIDAK menggunakan generateSW
- Anda ingin menggunakan fitur Service Worker 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 melakukan pra-cache, dan menambahkan manifes pra-cache tersebut ke file pekerja layanan yang ada. Jika tidak, file akan dibiarkan apa adanya.
Kapan menggunakan injectManifest
- Anda menginginkan kontrol yang lebih besar atas pekerja layanan Anda.
- Anda ingin melakukan pra-cache file.
- Anda perlu menyesuaikan pemilihan rute dan strategi.
- Anda ingin menggunakan pekerja layanan dengan fitur platform lain (misalnya, Web Push).
Kapan sebaiknya TIDAK menggunakan injectManifest
- Anda menginginkan cara 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 berikut:
// 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 penyimpanan dalam cache runtime yang diberikan.
Kumpulan lengkap opsi konfigurasi dapat ditemukan dalam dokumentasi referensi.
Mode injectManifest
Anda dapat menggunakan mode injectManifest dalam skrip build berbasis node, menggunakan opsi konfigurasi yang paling umum, seperti berikut:
// 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 menyisipkannya ke file pekerja layanan yang ada.
Kumpulan lengkap opsi konfigurasi dapat ditemukan dalam dokumentasi referensi.
Mode tambahan
Kami berharap generateSW atau injectManifest akan sesuai dengan kebutuhan sebagian besar developer. Namun, ada satu mode lain yang didukung oleh workbox-build yang mungkin sesuai untuk kasus penggunaan tertentu.
Mode getManifest
Secara konseptual, hal ini mirip dengan mode injectManifest, tetapi alih-alih menambahkan manifes ke file pekerja layanan sumber, fungsi ini menampilkan array entri manifes, beserta informasi tentang jumlah entri dan total ukuran.
Anda dapat menggunakan mode injectManifest dalam skrip build berbasis node, menggunakan opsi konfigurasi yang paling umum, seperti berikut:
// 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 dalam dokumentasi referensi.
Jenis
BasePartial
Properti
-
additionalManifestEntries
(string | ManifestEntry)[] opsional
Daftar entri yang akan di-precache, selain entri yang dihasilkan sebagai bagian dari konfigurasi build.
-
dontCacheBustURLsMatching
RegExp opsional
Aset yang cocok dengan ini akan dianggap memiliki versi unik melalui URL-nya, dan dikecualikan dari penghapusan cache HTTP normal yang dilakukan saat mengisi pra-cache. Meskipun tidak wajib, 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. -
manifestTransforms
ManifestTransform[] opsional
Satu atau beberapa fungsi yang akan diterapkan secara berurutan terhadap manifes yang dihasilkan. Jika
modifyURLPrefixataudontCacheBustURLsMatchingjuga ditentukan, transformasi yang sesuai akan diterapkan terlebih dahulu. -
maximumFileSizeToCacheInBytes
nomor opsional
Nilai defaultnya adalah: 2097152
Nilai ini dapat digunakan untuk menentukan ukuran maksimum file yang akan di-precache. Hal ini mencegah Anda melakukan pra-cache file yang sangat besar secara tidak sengaja yang mungkin secara tidak sengaja cocok dengan salah satu pola Anda.
-
modifyURLPrefix
objek opsional
Objek yang memetakan awalan string ke nilai string pengganti. Hal 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 yang lebih fleksibel, Anda dapat menggunakan opsi
manifestTransformsdan memberikan 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
Menghilangkan<GetManifestResult"manifestEntries"
> & objek
Properti
-
filePaths
string[]
GeneratePartial
Properti
-
babelPresetEnvTargets
string[] opsional
Nilai defaultnya adalah: ["chrome >= 56"]
Target yang akan diteruskan ke
babel-preset-envsaat mentranspilasi paket pekerja layanan. -
cacheId
string opsional
ID opsional yang akan ditambahkan ke nama cache. Hal ini terutama berguna untuk pengembangan lokal ketika beberapa situs dapat ditayangkan dari origin
http://localhost:portyang sama. -
cleanupOutdatedCaches
boolean opsional
Nilai defaultnya adalah: false
Apakah Workbox harus mencoba mengidentifikasi dan menghapus semua pra-cache yang dibuat oleh versi lama yang tidak kompatibel.
-
clientsClaim
boolean opsional
Nilai defaultnya adalah: false
Apakah pekerja layanan harus mulai mengontrol klien yang ada segera setelah diaktifkan.
-
directoryIndex
string opsional
Jika permintaan navigasi untuk URL yang diakhiri dengan
/gagal cocok dengan URL yang di-cache sebelumnya, nilai ini akan ditambahkan ke URL dan URL tersebut akan diperiksa untuk menemukan kecocokan dengan cache sebelumnya. Setelan ini harus ditetapkan ke apa yang digunakan server web Anda untuk indeks direktori. -
disableDevLogs
boolean opsional
Nilai defaultnya adalah: false
-
ignoreURLParametersMatching
RegExp[] opsional
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$/]. -
importScripts
string[] opsional
Daftar file JavaScript yang harus diteruskan ke
importScripts()di dalam file service worker yang dihasilkan. Hal ini berguna jika Anda ingin Workbox membuat file pekerja layanan tingkat teratas, tetapi ingin menyertakan beberapa kode tambahan, seperti pemroses peristiwa push. -
inlineWorkboxRuntime
boolean 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. Dengan menjaga runtime tetap terpisah, pengguna tidak perlu mendownload ulang kode Workbox setiap kali pekerja layanan tingkat teratas Anda berubah.
-
mode
string opsional
Nilai defaultnya adalah: "production"
Jika disetel ke 'production', maka paket pekerja layanan yang dioptimalkan yang mengecualikan info penelusuran bug 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 di-cache sebelumnya akan dipenuhi dengan HTML di URL yang diberikan. Anda harus meneruskan URL dokumen HTML yang tercantum dalam manifes pra-cache Anda. Tindakan ini dimaksudkan untuk digunakan dalam skenario Aplikasi Halaman Tunggal, yang mana Anda ingin semua navigasi menggunakan HTML Shell Aplikasi umum.
-
RegExp[] opsional
Array opsional ekspresi reguler yang membatasi URL yang diterapkan perilaku
navigateFallbackyang dikonfigurasi. Hal ini berguna jika hanya subset URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Halaman Tunggal. JikanavigateFallbackDenylistdannavigateFallbackAllowlistdikonfigurasi, daftar yang ditolak akan lebih diutamakan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan RegExp yang rumit, atau pengguna Anda mungkin mengalami penundaan saat menjelajahi situs Anda.
-
RegExp[] opsional
Array opsional ekspresi reguler yang membatasi URL yang diterapkan perilaku
navigateFallbackyang dikonfigurasi. Hal ini berguna jika hanya subset URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Halaman Tunggal. JikanavigateFallbackDenylistdannavigateFallbackAllowlistdikonfigurasi, daftar yang ditolak akan diutamakan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan RegExp yang rumit, atau pengguna Anda mungkin mengalami penundaan saat menjelajahi situs Anda.
-
boolean opsional
Nilai defaultnya adalah: false
Apakah akan mengaktifkan pemuatan awal 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 memanfaatkan respons yang telah dimuat sebelumnya. -
offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions opsional
Nilai defaultnya adalah: false
Mengontrol apakah akan menyertakan dukungan untuk Google Analytics offline atau tidak. Saat
true, panggilan keinitialize()workbox-google-analyticsakan ditambahkan ke pekerja layanan yang dihasilkan. Jika disetel keObject, objek tersebut akan diteruskan ke panggilaninitialize(), sehingga Anda dapat menyesuaikan perilakunya. -
runtimeCaching
RuntimeCaching[] opsional
Saat menggunakan alat build Workbox untuk membuat pekerja layanan, Anda dapat menentukan satu atau beberapa konfigurasi caching runtime. Kemudian, permintaan ini diterjemahkan menjadi panggilan
workbox-routing.registerRoutemenggunakan konfigurasi pencocokan dan handler yang Anda tentukan.Untuk mengetahui semua opsi, lihat dokumentasi
workbox-build.RuntimeCaching. Contoh di bawah menunjukkan konfigurasi umum, dengan dua rute runtime yang ditentukan: -
skipWaiting
boolean opsional
Nilai defaultnya adalah: false
Apakah akan menambahkan panggilan tanpa syarat ke
skipWaiting()ke pekerja layanan yang dihasilkan. Jikafalse, pemrosesmessageakan ditambahkan, sehingga halaman klien dapat memicuskipWaiting()dengan memanggilpostMessage({type: 'SKIP_WAITING'})di pekerja layanan yang menunggu. -
sourcemap
boolean opsional
Nilai defaultnya adalah: true
Apakah akan membuat peta sumber untuk file service worker yang dihasilkan.
GenerateSWOptions
Jenis
GetManifestOptions
GetManifestResult
Properti
-
jumlah
angka
-
manifestEntries
-
ukuran
angka
-
peringatan
string[]
GlobPartial
Properti
-
globFollow
boolean opsional
Nilai defaultnya adalah: true
Menentukan apakah symlink diikuti atau tidak saat membuat manifes pra-cache. Untuk mengetahui informasi selengkapnya, lihat definisi
followdalam dokumentasiglob. -
globIgnores
string[] opsional
Nilai defaultnya adalah: ["**\/node_modules\/**\/*"]
Kumpulan pola yang cocok dengan file yang selalu dikecualikan saat membuat manifes pra-cache. Untuk mengetahui informasi selengkapnya, lihat definisi
ignoredalam dokumentasiglob. -
globPatterns
string[] opsional
Nilai defaultnya adalah: ["**\/*.{js,wasm,css,html}"]
File yang cocok dengan salah satu pola ini akan disertakan dalam manifes pra-cache. Untuk mengetahui informasi selengkapnya, lihat
globprimer. -
templatedURLs
objek opsional
Jika URL dirender berdasarkan beberapa logika sisi server, kontennya mungkin bergantung pada beberapa file atau pada 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 unik URL. Jika digunakan dengan satu string, parameter ini akan ditafsirkan sebagai informasi versi unik yang telah Anda buat untuk URL tertentu.
InjectManifestOptions
Jenis
InjectPartial
Properti
-
injectionPoint
string opsional
Nilai defaultnya adalah: "self.__WB_MANIFEST"
String yang akan dicari di dalam file
swSrc. Setelah ditemukan, file tersebut akan digantikan oleh manifes pra-cache yang dihasilkan. -
swSrc
string
Jalur dan nama file pekerja layanan yang akan dibaca selama proses build, relatif terhadap direktori kerja saat ini.
ManifestEntry
Properti
-
integritas
string opsional
-
revisi
string
-
url
string
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Jenis
fungsi
Parameter
-
manifestEntries
(ManifestEntry & object)[]
-
ukuran
angka
-
-
kompilasi
tidak diketahui opsional
Hasil
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Properti
-
manifes
(ManifestEntry & object)[]
-
ukuran
angka
-
-
peringatan
string[] opsional
OptionalGlobDirectoryPartial
Properti
-
globDirectory
string opsional
Direktori lokal yang ingin Anda cocokkan dengan
globPatterns. Jalur ini relatif terhadap direktori saat ini.
RequiredGlobDirectoryPartial
Properti
-
globDirectory
string
Direktori lokal yang ingin Anda cocokkan dengan
globPatterns. Jalur ini relatif terhadap direktori saat ini.
RequiredSWDestPartial
Properti
-
swDest
string
Jalur dan nama file pekerja layanan yang akan dibuat oleh proses build, relatif terhadap direktori kerja saat ini. Harus diakhiri dengan '.js'.
RuntimeCaching
Properti
-
handler
Hal ini 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. -
method
HTTPMethod 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. -
opsi
objek opsional
-
backgroundSync
objek opsional
Mengonfigurasi ini akan menambahkan instance
workbox-background-sync.BackgroundSyncPluginkeworkbox-strategiesyang dikonfigurasi dihandler.-
nama
string
-
opsi
QueueOptions opsional
-
-
broadcastUpdate
objek opsional
Mengonfigurasi ini akan menambahkan instance
workbox-broadcast-update.BroadcastUpdatePluginkeworkbox-strategiesyang dikonfigurasi dihandler.-
channelName
string opsional
-
-
cacheName
string opsional
Jika disediakan, properti ini akan menetapkan properti
cacheNamedariworkbox-strategiesyang dikonfigurasi dihandler. -
cacheableResponse
CacheableResponseOptions opsional
Mengonfigurasi ini akan menambahkan instance
workbox-cacheable-response.CacheableResponsePluginkeworkbox-strategiesyang dikonfigurasi dihandler. -
masa berlaku
ExpirationPluginOptions opsional
Mengonfigurasi ini akan menambahkan instance
workbox-expiration.ExpirationPluginkeworkbox-strategiesyang dikonfigurasi dihandler. -
fetchOptions
RequestInit opsional
Mengonfigurasi ini akan meneruskan nilai
fetchOptionskeworkbox-strategiesyang dikonfigurasi dihandler. -
matchOptions
CacheQueryOptions opsional
Mengonfigurasi ini akan meneruskan nilai
matchOptionskeworkbox-strategiesyang dikonfigurasi dihandler. -
networkTimeoutSeconds
nomor opsional
Jika disediakan, properti ini akan menetapkan properti
networkTimeoutSecondsdariworkbox-strategiesyang dikonfigurasi dihandler. Perhatikan bahwa hanya'NetworkFirst'dan'NetworkOnly'yang mendukungnetworkTimeoutSeconds. -
plugin
WorkboxPlugin[] 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. -
precacheFallback
objek opsional
Mengonfigurasi ini akan menambahkan instance
workbox-precaching.PrecacheFallbackPluginkeworkbox-strategiesyang dikonfigurasi dihandler.-
fallbackURL
string
-
-
rangeRequests
boolean opsional
Mengaktifkan opsi ini akan menambahkan instance
workbox-range-requests.RangeRequestsPluginkeworkbox-strategiesyang dikonfigurasi dihandler.
-
-
urlPattern
string | RegExp | RouteMatchCallback
Kriteria kecocokan ini menentukan apakah handler yang dikonfigurasi akan membuat respons untuk permintaan apa pun yang tidak cocok dengan salah satu URL yang telah di-cache sebelumnya. Jika beberapa rute
RuntimeCachingditentukan, rute pertama yangurlPattern-nya cocok akan menjadi rute yang merespons.Nilai ini dipetakan langsung 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
-
importScriptsViaChunks
string[] opsional
Satu atau beberapa nama chunk webpack. Konten potongan tersebut akan disertakan dalam pekerja layanan yang dihasilkan, melalui panggilan ke
importScripts(). -
swDest
string opsional
Nilai defaultnya adalah: "service-worker.js"
Nama aset file pekerja layanan yang dibuat oleh plugin ini.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Properti
-
compileSrc
boolean opsional
Nilai defaultnya adalah: true
Jika
true(default), fileswSrcakan dikompilasi oleh webpack. Jikafalse, kompilasi tidak akan terjadi (danwebpackCompilationPluginstidak dapat digunakan). Setel kefalsejika Anda ingin menyuntikkan manifes ke dalam, misalnya, file JSON. -
swDest
string opsional
Nama aset file pekerja layanan yang akan dibuat oleh plugin ini. Jika tidak ditentukan, nama akan didasarkan pada nama
swSrc. -
webpackCompilationPlugins
any[] opsional
Plugin
webpackopsional yang akan digunakan saat mengompilasi file inputswSrc. Hanya valid jikacompileSrcadalahtrue.
WebpackPartial
Properti
-
potongan
string[] opsional
Satu atau beberapa nama chunk yang file output terkaitnya harus disertakan dalam manifes pra-cache.
-
kecualikan
(string | RegExp | function)[] opsional
Satu atau beberapa penentu yang digunakan untuk mengecualikan aset dari manifes pra-cache. Hal ini ditafsirkan mengikuti aturan yang sama dengan opsi
excludestandarwebpack. Jika tidak diberikan, nilai defaultnya adalah[/\.map$/, /^manifest.*\.js$]. -
excludeChunks
string[] opsional
Satu atau beberapa nama chunk yang file output terkaitnya harus dikecualikan dari manifes pra-cache.
-
sertakan
(string | RegExp | function)[] opsional
Satu atau beberapa penentu yang digunakan untuk menyertakan aset dalam manifes pra-cache. Hal ini ditafsirkan mengikuti aturan yang sama dengan opsi
includestandarwebpack. -
mode
string opsional
Jika disetel ke 'production', maka paket pekerja layanan yang dioptimalkan yang mengecualikan info penelusuran bug 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 menyalin serangkaian library runtime yang digunakan oleh Workbox ke direktori lokal, yang harus di-deploy bersama file service worker Anda.
Sebagai alternatif untuk men-deploy salinan lokal ini, Anda dapat menggunakan Workbox dari URL CDN resminya.
Metode ini diekspos untuk kepentingan developer yang menggunakan
workbox-build.injectManifest yang lebih memilih untuk tidak menggunakan salinan Workbox CDN. Developer yang menggunakan
workbox-build.generateSW tidak perlu
memanggil metode ini secara eksplisit.
Parameter
-
destDirectory
string
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 di-precache, yang disebut sebagai "manifest precache", berdasarkan opsi yang Anda berikan.
Metode ini juga menerima opsi tambahan yang mengonfigurasi perilaku
service worker, 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 yang akan di-precache, yang disebut sebagai "manifest precache", 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
-
moduleName
string
-
buildType
BuildType
Hasil
-
string
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Metode ini membuat daftar URL untuk di-precache, yang disebut sebagai "manifest precache", berdasarkan opsi yang Anda berikan.
Manifes disisipkan ke dalam file swSrc, dan string placeholder
injectionPoint menentukan lokasi manifes dalam file.
File service worker akhir, dengan manifes yang disisipkan, ditulis ke
disk di swDest.
Metode ini tidak akan mengompilasi atau menggabungkan file swSrc Anda; metode ini hanya menangani penyisipan 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>