Modul workbox-build
terintegrasi ke dalam proses build berbasis node dan dapat membuat seluruh pekerja layanan, atau cukup membuat daftar aset untuk melakukan precache 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 Apa yang harus 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 {i>precache<i} file.
- Anda memiliki kebutuhan penyimpanan cache runtime yang sederhana.
Kapan generateSW
TIDAK harus digunakan
- Anda ingin menggunakan fitur Service Worker lainnya (yaitu Web Push).
- Anda ingin mengimpor skrip tambahan, atau menambahkan logika tambahan untuk strategi caching kustom.
injectManifest
Mode injectManifest
akan menghasilkan daftar URL untuk melakukan pra-cache, dan menambahkan manifes precache tersebut ke file pekerja layanan yang ada. Jika tidak, file akan dibiarkan apa adanya.
Kapan menggunakan injectManifest
- Anda menginginkan kontrol lebih besar atas pekerja layanan.
- Anda ingin melakukan {i>precache<i} file.
- Anda perlu menyesuaikan pemilihan rute dan strategi.
- Anda ingin menggunakan pekerja layanan dengan fitur platform lainnya (mis. Web Push).
Kapan injectManifest
TIDAK harus digunakan
- 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 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.`);
});
Ini akan menghasilkan pekerja layanan dengan penyiapan pra-caching untuk semua file yang diambil oleh konfigurasi Anda, dan aturan caching runtime yang disediakan.
Set 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 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.`);
});
Ini akan membuat manifes precache berdasarkan file yang diambil oleh konfigurasi Anda dan memasukkannya ke file pekerja layanan yang ada.
Set lengkap opsi konfigurasi dapat ditemukan di dokumentasi referensi.
Mode tambahan
Kami berharap generateSW
atau injectManifest
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 mirip dengan mode injectManifest
, tetapi bukannya menambahkan manifes ke dalam file pekerja layanan sumber, ia akan 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 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.
});
Set lengkap opsi konfigurasi dapat ditemukan di dokumentasi referensi.
Jenis
BasePartial
Properti
-
additionalManifestEntries
(string | ManifestEntry)[] opsional
Daftar entri yang akan di-precache, selain setiap entri yang dibuat sebagai bagian dari konfigurasi build.
-
dontCacheBustURLsMatching
Ekspresi reguler opsional
Aset yang cocok dengan nilai ini akan diasumsikan memiliki versi unik melalui URL-nya, dan dikecualikan dari perusakan cache HTTP normal yang dilakukan saat mengisi precache. Meskipun tidak wajib, sebaiknya jika proses build yang ada sudah menyisipkan nilai
[hash]
ke setiap nama file, Anda memberikan RegExp yang akan mendeteksinya, karena akan mengurangi penggunaan bandwidth saat melakukan precaching. -
manifestTransforms
ManifestTransform[] opsional
Satu atau beberapa fungsi yang akan diterapkan secara berurutan terhadap manifes yang dihasilkan. Jika
modifyURLPrefix
ataudontCacheBustURLsMatching
juga 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. Ini mencegah Anda secara tidak sengaja menyimpan file berukuran sangat besar yang mungkin tidak sengaja cocok dengan salah satu pola.
-
modifyURLPrefix
objek 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. Sebagai alternatif dengan lebih fleksibel, Anda dapat menggunakan opsi
manifestTransforms
dan 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<GetManifestResult"manifestEntries"
> & objek
Properti
-
filePaths
string[]
GeneratePartial
Properti
-
babelPresetEnvTargets
string[] opsional
Nilai defaultnya adalah: ["chrome >= 56"]
Target yang akan diteruskan ke
babel-preset-env
saat mentranspilasi paket pekerja layanan. -
cacheId
string opsional
ID opsional yang akan ditambahkan ke nama cache. Hal ini terutama berguna untuk pengembangan lokal, tempat beberapa situs dapat disalurkan dari asal
http://localhost:port
yang sama. -
cleanupOutdatedCaches
boolean opsional
Nilai defaultnya adalah: false
Apakah Workbox harus mencoba mengidentifikasi dan menghapus precache 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 telah di-cache, nilai ini akan ditambahkan ke URL dan akan diperiksa untuk menemukan kecocokan precache. Atribut ini harus ditetapkan ke alamat yang digunakan server web Anda untuk indeks direktorinya. -
disableDevLogs
boolean opsional
Nilai defaultnya adalah: false
-
ignoreURLParametersMatching
RegExp[] opsional
Semua nama parameter penelusuran yang cocok dengan salah satu RegExp dalam array ini akan dihapus sebelum mencari pencocokan pra-cache. Hal ini berguna jika pengguna 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 pekerja layanan yang dihasilkan. Ini berguna jika Anda ingin mengizinkan Workbox membuat file pekerja layanan level 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 atas, atau dibagi menjadi file terpisah yang perlu di-deploy bersama pekerja layanan. Dengan memisahkan runtime, pengguna tidak perlu mendownload ulang kode Workbox setiap kali pekerja layanan tingkat atas berubah.
-
mode
string opsional
Nilai defaultnya adalah: "production"
Jika ditetapkan ke 'production', paket pekerja layanan yang dioptimalkan dan tidak menyertakan info proses debug akan ditampilkan. Jika tidak dikonfigurasi secara eksplisit di sini, nilai
process.env.NODE_ENV
akan digunakan, dan jika tidak dikonfigurasi secara eksplisit, nilai akan kembali ke'production'
. -
string opsional
Nilai defaultnya adalah: null
Jika ditentukan, semua permintaan navigasi untuk URL yang tidak di-cache akan dipenuhi dengan HTML di URL yang diberikan. Anda harus meneruskan URL dokumen HTML yang tercantum dalam manifes precache Anda. Hal ini dimaksudkan untuk digunakan dalam skenario Aplikasi Satu Halaman, tempat Anda ingin semua navigasi menggunakan HTML Shell Aplikasi yang umum.
-
RegExp[] opsional
Array opsional dari ekspresi reguler yang membatasi URL tempat perilaku
navigateFallback
yang dikonfigurasi diterapkan. Hal ini berguna jika hanya sebagian URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Web Satu Halaman. JikanavigateFallbackDenylist
dannavigateFallbackAllowlist
dikonfigurasi, daftar tolak akan menjadi lebih diutamakan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan Ekspresi Reguler yang kompleks, atau pengguna mungkin akan mengalami keterlambatan saat membuka situs Anda.
-
RegExp[] opsional
Array opsional dari ekspresi reguler yang membatasi URL tempat perilaku
navigateFallback
yang dikonfigurasi diterapkan. Hal ini berguna jika hanya sebagian URL situs Anda yang harus diperlakukan sebagai bagian dari Aplikasi Web Satu Halaman. JikanavigateFallbackDenylist
dannavigateFallbackAllowlist
dikonfigurasi, daftar tolak akan lebih diutamakan.Catatan: RegExp ini dapat dievaluasi terhadap setiap URL tujuan selama navigasi. Hindari penggunaan Ekspresi Reguler yang kompleks, atau pengguna mungkin akan mengalami keterlambatan saat membuka 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
runtimeCaching
untuk menyiapkan strategi respons yang sesuai dan akan cocok dengan permintaan navigasi, serta memanfaatkan respons pramuat. -
offlineGoogleAnalytics
boolean | GoogleAnalyticsInitializeOptions opsional
Nilai defaultnya adalah: false
Mengontrol apakah Anda akan menyertakan dukungan untuk Google Analytics offline atau tidak. Saat
true
, panggilan keinitialize()
workbox-google-analytics
akan ditambahkan ke pekerja layanan yang dibuat. Jika ditetapkan keObject
, objek tersebut akan diteruskan ke panggilaninitialize()
sehingga Anda dapat menyesuaikan perilakunya. -
runtimeCaching
RuntimeCaching[] opsional
Saat menggunakan alat build Workbox untuk menghasilkan pekerja layanan, Anda dapat menentukan satu atau beberapa konfigurasi penyimpanan cache runtime. Ini kemudian diterjemahkan ke panggilan
workbox-routing.registerRoute
menggunakan konfigurasi pencocokan dan pengendali yang Anda tentukan.Untuk semua opsi, lihat dokumentasi
workbox-build.RuntimeCaching
. Contoh di bawah ini 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 dibuat. Jikafalse
, pemrosesmessage
akan ditambahkan, sehingga halaman klien dapat memicuskipWaiting()
dengan memanggilpostMessage({type: 'SKIP_WAITING'})
pada pekerja layanan yang menunggu. -
peta sumber
boolean opsional
Nilai defaultnya adalah: true
Apakah akan membuat sourcemap untuk file pekerja layanan 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 precache. Untuk informasi selengkapnya, lihat definisi
follow
dalam dokumentasiglob
. -
globIgnores
string[] opsional
Nilai defaultnya adalah: ["**\/node_modules\/**\/*"]
Kumpulan pola yang cocok dengan file yang akan selalu dikecualikan saat membuat manifes precache. Untuk informasi selengkapnya, lihat definisi
ignore
dalam dokumentasiglob
. -
globPatterns
string[] opsional
Nilai defaultnya adalah: ["**\/*.{js,wasm,css,html}"]
File yang cocok dengan salah satu pola ini akan disertakan dalam manifes pracache. Untuk mengetahui informasi selengkapnya, lihat
glob
primer. -
globStrict
boolean opsional
Nilai defaultnya adalah: true
Jika true (benar), error saat membaca direktori saat membuat manifes pracache akan menyebabkan build gagal. Jika false, direktori yang bermasalah akan dilewati. Untuk informasi selengkapnya, lihat definisi
strict
dalam dokumentasiglob
. -
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 adalah array string, nilai tersebut akan ditafsirkan sebagai pola
glob
, dan konten file apa pun yang cocok dengan pola tersebut 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 hasilkan untuk URL tertentu.
InjectManifestOptions
Jenis
InjectPartial
Properti
-
injectionPoint
string opsional
Nilai defaultnya adalah: "self.__WB_MANIFEST"
String yang akan ditemukan di dalam file
swSrc
. Setelah ditemukan, file tersebut akan diganti dengan manifes precache yang dihasilkan. -
swSrc
string
Jalur dan nama file file pekerja layanan yang akan dibaca selama proses build, yang terkait dengan direktori kerja saat ini.
ManifestEntry
Properti
-
integritas
string opsional
-
revisi
string
-
url
string
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
)
Jenis
fungsi
Parameter
-
manifestEntries
(ManifestEntry & objek)[]
-
ukuran
angka
-
-
kompilasi
tidak diketahui opsional
Hasil
-
Promise<ManifestTransformResult> | ManifestTransformResult
ManifestTransformResult
Properti
-
manifes
(ManifestEntry & objek)[]
-
ukuran
angka
-
-
peringatan
string[] opsional
OptionalGlobDirectoryPartial
Properti
-
globDirectory
string opsional
Direktori lokal yang ingin Anda cocokkan dengan
globPatterns
. Jalur tersebut relatif terhadap direktori saat ini.
RequiredGlobDirectoryPartial
Properti
-
globDirectory
string
Direktori lokal yang ingin Anda cocokkan dengan
globPatterns
. Jalur tersebut relatif terhadap direktori saat ini.
RequiredSWDestPartial
Properti
-
swDest
string
Jalur dan nama file file pekerja layanan yang akan dibuat oleh proses build, yang terkait dengan direktori kerja saat ini. Parameter ini harus diakhiri dengan '.js'.
RuntimeCaching
Properti
-
handler
Ini menentukan bagaimana rute runtime akan menghasilkan respons. Untuk menggunakan salah satu
workbox-strategies
bawaan, berikan namanya, seperti'NetworkFirst'
. Atau, hal ini dapat berupa fungsi callbackworkbox-core.RouteHandler
dengan 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 harus mencocokkan'POST'
,'PUT'
, atau jenis permintaan lainnya. -
opsi
objek opsional
-
backgroundSync
objek opsional
Mengonfigurasi hal ini akan menambahkan instance
workbox-background-sync.BackgroundSyncPlugin
keworkbox-strategies
yang dikonfigurasi dihandler
.-
name
string
-
opsi
QueueOptions opsional
-
-
broadcastUpdate
objek opsional
Mengonfigurasi hal ini akan menambahkan instance
workbox-broadcast-update.BroadcastUpdatePlugin
keworkbox-strategies
yang dikonfigurasi dihandler
.-
channelName
string opsional
-
-
cacheName
string opsional
Jika diberikan, properti
cacheName
dariworkbox-strategies
akan dikonfigurasi dihandler
jika diberikan. -
cacheableResponse
CacheableResponseOptions opsional
Mengonfigurasi hal ini akan menambahkan instance
workbox-cacheable-response.CacheableResponsePlugin
keworkbox-strategies
yang dikonfigurasi dihandler
. -
expiration
ExpirationPluginOptions opsional
Mengonfigurasi hal ini akan menambahkan instance
workbox-expiration.ExpirationPlugin
keworkbox-strategies
yang dikonfigurasi dihandler
. -
fetchOptions
RequestInit opsional
Mengonfigurasi hal ini akan meneruskan nilai
fetchOptions
keworkbox-strategies
yang dikonfigurasi dihandler
. -
matchOptions
CacheQueryOptions opsional
Mengonfigurasi hal ini akan meneruskan nilai
matchOptions
keworkbox-strategies
yang dikonfigurasi dihandler
. -
networkTimeoutSeconds
nomor opsional
Jika diberikan, properti
networkTimeoutSeconds
dariworkbox-strategies
akan dikonfigurasi dihandler
jika diberikan. Perlu diketahui bahwa hanya'NetworkFirst'
dan'NetworkOnly'
yang mendukungnetworkTimeoutSeconds
. -
plugin
WorkboxPlugin[] opsional
Dengan mengonfigurasi hal ini, penggunaan satu atau beberapa plugin Workbox yang tidak memiliki opsi "pintasan" (seperti
expiration
untukworkbox-expiration.ExpirationPlugin
). Plugin yang disediakan di sini akan ditambahkan keworkbox-strategies
yang dikonfigurasi dihandler
. -
precacheFallback
objek opsional
Mengonfigurasi hal ini akan menambahkan instance
workbox-precaching.PrecacheFallbackPlugin
keworkbox-strategies
yang dikonfigurasi dihandler
.-
fallbackURL
string
-
-
rangeRequests
boolean opsional
Mengaktifkan ini akan menambahkan instance
workbox-range-requests.RangeRequestsPlugin
keworkbox-strategies
yang dikonfigurasi dihandler
.
-
-
urlPattern
string | RegExp | RouteMatchCallback
Kriteria pencocokan ini menentukan apakah pengendali yang dikonfigurasi akan menghasilkan respons untuk setiap permintaan yang tidak cocok dengan salah satu URL yang telah di-cache. Jika beberapa rute
RuntimeCaching
ditentukan, rute pertama yang cocok denganurlPattern
akan menjadi yang merespons.Nilai ini langsung dipetakan ke parameter pertama yang diteruskan ke
workbox-routing.registerRoute
. Sebaiknya gunakan fungsiworkbox-core.RouteMatchCallback
untuk fleksibilitas terbaik.
StrategyName
Enum
"CacheFirst"
"CacheOnly"
"NetworkFirst"
"StaleWhileRevalidate"
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Properti
-
importScriptsViaChunks
string[] opsional
Satu atau beberapa nama potongan webpack. Konten dari 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 service worker yang dibuat oleh plugin ini.
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Properti
-
compileSrc
boolean opsional
Nilai defaultnya adalah: true
Jika
true
(default), fileswSrc
akan dikompilasi oleh webpack. Jikafalse
, kompilasi tidak akan terjadi (danwebpackCompilationPlugins
tidak dapat digunakan.) Tetapkan kefalse
jika Anda ingin memasukkan manifes ke dalam, misalnya, file JSON. -
swDest
string opsional
Nama aset file pekerja layanan yang akan dibuat oleh plugin ini. Jika dihilangkan, nama akan didasarkan pada nama
swSrc
. -
webpackCompilationPlugins
any[] opsional
Plugin
webpack
opsional yang akan digunakan saat mengompilasi file inputswSrc
. Hanya berlaku jikacompileSrc
adalahtrue
.
WebpackPartial
Properti
-
potongan
string[] opsional
Satu atau beberapa nama potongan yang file outputnya terkait harus disertakan dalam manifes precache.
-
kecualikan
(string | RegExp | function)[] opsional
Satu atau beberapa penentu yang digunakan untuk mengecualikan aset dari manifes precache. Hal ini ditafsirkan dengan mengikuti aturan yang sama dengan opsi
exclude
standarwebpack
. Jika tidak diberikan, nilai defaultnya adalah[/\.map$/, /^manifest.*\.js$]
. -
excludeChunks
string[] opsional
Satu atau beberapa nama potongan yang file outputnya terkait harus dikecualikan dari manifes precache.
-
sertakan
(string | RegExp | function)[] opsional
Satu atau beberapa penentu digunakan untuk menyertakan aset dalam manifes precache. Hal ini ditafsirkan dengan mengikuti aturan yang sama dengan opsi
include
standarwebpack
. -
mode
string opsional
Jika ditetapkan ke 'production', paket pekerja layanan yang dioptimalkan dan tidak menyertakan info proses debug akan ditampilkan. Jika tidak dikonfigurasi secara eksplisit di sini, nilai
mode
yang dikonfigurasi dalam kompilasiwebpack
saat ini akan digunakan.
Metode
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
)
Tindakan ini akan menyalin sekumpulan 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 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,
)
Metode ini membuat daftar URL yang akan dilakukan pra-cache, yang disebut sebagai "manifes pracache", berdasarkan opsi yang Anda berikan.
Layanan ini juga menerima opsi tambahan yang mengonfigurasi perilaku pekerja layanan, seperti aturan runtimeCaching
yang harus digunakan.
Berdasarkan manifes pra-cache dan konfigurasi tambahan, server ini menulis
file pekerja layanan yang siap digunakan 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,
)
Metode ini menampilkan daftar URL yang akan dilakukan pra-cache, yang disebut sebagai "manifes pracache", 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,
)
Parameter
-
moduleName
string
-
buildType
BuildType
Hasil
-
string
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
)
Metode ini membuat daftar URL yang akan dilakukan pra-cache, yang disebut sebagai "manifes pracache", berdasarkan opsi yang Anda berikan.
Manifes dimasukkan ke dalam file swSrc
, dan string placeholder
injectionPoint
menentukan tempat manifes harus berada dalam file.
File pekerja layanan akhir, dengan manifes yang dimasukkan, ditulis ke disk pada 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>