In this tutorial, we are going to add the PWA support in the existing VueJs application.
1. Install Vue CLI
npm install -g @vue/cli
# OR
yarn global add @vue/cli
2. Add PWA in our application
Let's open the terminal or command prompt and go to the project directory and add PWA to the project.
vue add pwa
This will add a couple of files and settings for PWA in our existing application.
1. registerServiceWorker.js under ./src directory.
/* eslint-disable no-console */
import { register } from 'register-service-worker'
if (process.env.NODE_ENV === 'production') {
register(`${process.env.BASE_URL}service-worker.js`, {
ready () {
console.log(
'App is being served from cache by a service worker.\n' +
'For more details, visit https://goo.gl/AFskqB'
)
},
registered () {
console.log('Service worker has been registered.')
},
cached () {
console.log('Content has been cached for offline use.')
},
updatefound () {
console.log('New content is downloading.')
},
updated () {
console.log('New content is available; please refresh.')
},
offline () {
console.log('No internet connection found. App is running in offline mode.')
},
error (error) {
console.error('Error during service worker registration:', error)
}
})
}
Inside this file, the service worker is registered, and also, we can see the different hooks implemented which we can use in different cases like when the update is found in the app when the user is offline etc.
2. Dependencies added
Under package.json you can see the register-service-worker and PWA plugin is added.
3. Added some icons
Under public/img/icons/ folder some icons are added for mobile, desktop display. Make sure to change your icons for different devices. For more detail on changing this follow the following article.
If you want to configure via config file follow this
guide.
Besides this, registerServiceWorker is imported inside main.js file.
3. Build and Deploy the application.
Build and deploy the application, you can see the service worker is activated and running.
You can see the cached file inside cache storage.
By default, it uses default mode which means a service worker is generated for us. If you want to customize it follow the following articles.
To notify the users about the app update follow the following post.