ember-minimal-service-worker
v0.2.2
Published
Register a minimal service worker to allow 'Add to homescreen'.
Downloads
89
Readme
ember-minimal-service-worker
Install a minimal service worker, in order for your app to be eligible to be added to the homescreen.
The installed service worker does nothing, and is only there to make Chrome happy and allow "Add to home screen".
Compatibility
- Ember.js v3.20 or above
- Ember CLI v3.20 or above
- Node.js v12 or above
Installation
ember install ember-minimal-service-worker
Usage
By default, it will install the minimal service worker when being built in production environment. You can overwrite this behavior:
// ember-cli-build.js
let app = new EmberAddon(defaults, {
'ember-minimal-service-worker': {
// If this is true, the service worker will be loaded
include: false,
},
});
In addition, when the service worker is not included (=usually in dev mode), all service workers will be unregistered to avoid unexpected development behavior. You can overwrite this behavior by setting unregisterIfExcluded: true
in the config.
Unregister other service workers
If you are migrating from another service worker, the "old" service worker will continue to exist even if you ship the new, minimal one.
In that case, you can set unregisterOthers: true
in your config, which will try to unregister all other service workers.
Caching
Allthough this service worker does nothing, it is still a good idea to ensure the service worker itself is not cached.
For example, if you use ember-cli-deploy-s3
to upload your assets, you could use a configuration like this:
let uncachedFilesGlobPattern = 'ember-minimal-service-worker/sw.js';
let ENV = {
's3-assets': {
fileIgnorePattern: uncachedFilesGlobPattern,
bucket: config.bucket,
region: config.region,
},
's3-assets-no-cache': {
filePattern: uncachedFilesGlobPattern,
cacheControl: 'no-cache, no-store, must-revalidate',
bucket: config.bucket,
region: config.region,
manifestPath: null,
allowOverwrite: true,
},
};
This way, if you ever decide to ship a proper service worker, you will not have to deal with unexpired sw.js files.
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.