PWAplugin for Workbox SW
PWA runs Workbox in the GenerateSW mode by default.
If you'd like to use InjectManifest mode for more control, you must set either advanced or injectManifest to true.
Important: With
InjectManiest, you must also create aservice-worker.jstemplate file in yoursrcdirectory.
Further Reading
$ npm install --save-dev @pwa/plugin-sw-workbox
The plugin is recognized by and attached to @pwa/core automatically.
However, you must manually include the generated sw.js file into your bundle!
if (process.env.NODE_ENV === 'production') {
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js');
}
}
Note: For SW beginners, it's strongly recommended you use the above snippet!
However, it's not required to wrap registration in aNODE_ENV === 'production'check.
Configurable via the workbox key on your pwa.config.js file.
Default Config:
exports.workbox = {
advanced: false, // alias
injectManifest: false, // alias
swSrc: 'service-worker.js', // template; mode: InjectManifest
navigateFallbackWhitelist: [/^(?!\/__).*/], // mode: GenerateSW
navigateFallback: 'index.html', // mode: GenerateSW
swDest: 'sw.js',
exclude: [
/\.git/,
/\.map$/,
/\.DS_Store/,
/^manifest.*\.js(?:on)?$/,
/\.gz(ip)?$/,
/\.br$/
]
}
Available Options:
If either injectManifest or advanced is set, please see InjectManifest options.
Otherwise, please refer to the GenerateSW options.