ember-minimal-service-worker

    0.2.1 • Public • Published

    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.

    Keywords

    Install

    npm i ember-minimal-service-worker

    DownloadsWeekly Downloads

    1

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    11 kB

    Total Files

    11

    Last publish

    Collaborators

    • mydea