appsw
v3.2.0
Published
Application service worker generator
Downloads
19
Readme
AppSW - Application Service Worker
Simple browser file caching implementation to give your website/application wings.
Installation
npm install appswSetup build command
Append appsw command after the default build command.
{
"scripts": {
"build": "my-build-command && appsw"
}
}Configuration
| Argument | Type | Default | Usage |
| -------------- | ------ | ------- | ------------------------------------ |
| --appsw-root | String | build | Build directory path |
| --type | String | runtime | static or runtime |
| --uncompressed | | false | Output uncompressed scripts |
| --debug | | false | Add debugging logs in output scripts |
Example
appsw --appsw-root ./example --type runtime --uncompressed --debugAdd handler script in index.html
<body>
...
<script src="/service-worker-handler.js"></script>
</body>An empty js file
service-worker-handler.jscan be kept to avoid unwanted 404 error in dev mode.
Ready event
When the application updates its cache, a page reload may be required to use the latest files, which can cause a brief interruption for the user because of reload. To prevent this, the application should wait for the SW_READY event.
window.addEventListener('APPSW_READY', () => {
console.log('AppSW ready!')
})Only occurs when new version of the application is deployed.
runtime vs static
- Apps which can work without internet should use
staticcache elseruntimecache. - Runtime cache app should have offline html file
offline.htmlwhich will be visible when there is not internet connection.
Append content in default service worker
Add service-worker-append.js file which will automatically append content in default service worker.
Migration from AppSW
To stop using appsw, first remove appsw command from build script.
To disable appsw service worker, update apphash.json as:
{ "disable": true }To completely remove service worker from your application, update apphash.json as:
{ "unregister": true }Files
apphash.jsonauto-generated: Keeps a track of cached files.service-worker.jsauto-generated: Main service worker file.service-worker-handler.jsauto-generated: Setup service worker, responsible for cache rotation & ready event.service-worker-append.js: Contains custom code to be appended in the main service worker file.
Note
- Avoid using
Cache-Controlheader from your server to cache files. - When updating or removing appsw, ensure
apphash.jsonis updated accordingly; refer to the migration docs above. - Waiting for
APPSW_READYevent is recommended for smooth user experience.
