0.0.5 • Published 7 years ago

vue-offline-preloader v0.0.5

Weekly downloads
9
License
MIT
Repository
github
Last release
7 years ago

Vue Offline Preloader

This is a Vue component that uses Service Workers to enable offline experiences and preloading/caching of assets for improved performance.

Installation and Usage (macOS/Linux/Unix-like)

Step 1: Install Package

Install via npm:

$ npm install vue-offline-preloader

Step 2: Install Service Worker

In your project's public root, create a symbolic link to worker.js found in the package src folder:

ln -s ./node_modules/vue-offline-preloader/src/worker.js worker.js

Step 3: Register the Component

Register the component with Vue:

import VueOfflinePreloader from 'vue-offline-preloader';

new Vue({
    el: '#app',
    components: {
        'vue-offline-preloader': VueOfflinePreloader
    }
});

Step 4: Add Component to Template

Add component to your template:

<vue-offline-preloader 
    v-bind:assets="[
        '/',
        'images/logo.svg',
        'images/profile.png'
    ]"
></vue-offline-preloader>

Note: In order to enable an offline experience you'll need to include "/" in the assets array (see above example)


Props

PropTypeDefaultRequiredDescription
assetsArray<string>requiredCollection of asset files to be cached
namespacestring"vue"optionalNamespace for resource cache
versionstring"v1"optionalVersion of resource cache
scopestring"/"optionalScope of the Sevice Worker's control
workerstring"/worker.js"optionalLocation of the Service Worker file. Defaults to app's public root
showPreloaderBarbooleantrueoptionalDisplay progress bar
backgroundColorstring"#29d"optionalBackground colour of progress bar
debugbooleanfalseoptionalFlag to display console.log debugging messages from Service Worker

Events

EventDescription
serviceWorker.register.successThe service worker has been successfully registered
serviceWorker.register.errorThere was a problem registering the service worker
serviceWorker.preloading.assetAn asset has been preloaded successfully
serviceWorker.preloading.completeAsset preloading is complete

Basic Event Example

document.addEventListener('serviceWorker.preloading.asset', () => {
    console.log('asset loaded!');
});

Browser Support

This package requires Service Worker support which currently includes Firefox 52+, Chrome 49+, Opera 45+, Chrome for Android 59+.

For an current list of browsers please see: Can I Use

Notes

  • This package will work through localhost, however once deployed you will need to have HTTPS as it is a requirement for Service Workers.

Todo

  • Write tests