An Eleventy plugin to generate service worker. Using Google Workbox to generate service-worker.js based on your
dir.output
.
Since (at this moment) eleventy
doesn't have any API to do things after build process, this plugin is using monkey patch method to wrap into the finish
function in order to run workbox properly.
yarn add @pkvach/eleventy-plugin-pwa
const pluginPWA = require('@pkvach/eleventy-plugin-pwa');
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(pluginPWA);
};
Read more about Eleventy plugins
// in your header templates
<script>
if ('serviceWorker' in navigator) navigator.serviceWorker.register('/service-worker.js');
</script>
Read The Web App Manifest Guide
You can also pass workbox generateSW options directly into the plugin. For example :
// overwriting destination file and more
const pluginPWA = require('eleventy-plugin-pwa');
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(pluginPWA, {
swDest: './build/sw.js',
globDirectory: './build',
});
};
Read more about it on workbox generateSW module page
- Webstorm - for development
- Github - for versioning and deployment
- Jest - for testing
- Contributor Covenant - for the Code of Conduct
- Creative Commons - to choose the license
Please read CONTRIBUTING.md for details on our the process for submitting issues and pull requests to us. This repository has a code of conduct, we will remove things that do not respect it.
We use SemVer for versioning. For the available versions, see the tags on this repository.
See the list of contributors who participated in this project.
This code is available under the MIT license.
- Nanda Oktavera: okitavera, eleventy-plugin-pwa
- Mike Riethmuller: Supermaya
- Zach Leatherman: zachleat.com