An Ember Service Worker plugin that caches an Ember app's index file
Turn on the "Update on reload" setting in the Application > Service Workers
menu in the Chrome devtools.
ember install ember-service-worker-index
The configuration is done in the ember-cli-build.js
file:
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
'esw-index': {
// Where the location of your index file is at, defaults to `index.html`
location: 'app-shell.html',
// Bypass esw-index and don't serve cached index file for matching URLs
excludeScope: [/\/non-ember-app(\/.*)?$/, /\/another-app(\/.*)?$/],
// Leave blank serve index file for all URLs, otherwise ONLY URLs which match
// this pattern will be served the cached index file so you will need to list
// every route in your app.
includeScope: [/\/dashboard(\/.*)?$/, /\/admin(\/.*)?$/],
// Indicate the caching strategy to use for the index.html file.
// cache-first: read from the cache first
// fallback: attempt to load but fallback to the cache after the timeout specified in "timeout" option
// defaults to "cache-first"
strategy: 'fallback',
// Used along with strategy of "fallback".
// The number of milliseconds to wait for newly loaded index file before falling back to the cache
// defaults to 500 milliseconds
timeout: 500,
// Changing this version number will bust the cache, but you probably do not
// want to be doing this manually, but rather using `versionStrategy` as
// explained here http://ember-service-worker.com/documentation/configuration/#versioning
version: '1'
}
});
return app.toTree();
};
This library follows Semantic Versioning
Please do! We are always looking to improve this library. Please see our Contribution Guidelines on how to properly submit issues and pull requests.
DockYard, Inc. © 2016