1.9.10 • Published 4 days ago

@vuepress/plugin-pwa v1.9.10

Weekly downloads
16,159
License
MIT
Repository
github
Last release
4 days ago

@vuepress/plugin-pwa

PWA plugin for vuepress

Options

serviceWorker

  • Type: boolean
  • Default: true

If set to true, VuePress will automatically generate and register a service worker that caches the content for offline use (only enabled in production).

updatePopup

  • Type: boolean|popupConfig
  • Default: undefined
interface normalPopupConfig {
  message: string; // defaults to 'New content is available.'
  buttonText: string; // defaults to 'Refresh'
}

interface localedPopupConfig {
  [localePath: string]: normalPopupConfig
}

type popupConfig = normalPopupConfig | localedPopupConfig

This option enables the popup to refresh contents. The popup will be shown when the site is updated (i.e. service worker is updated). It provides refresh button to allow users to refresh contents immediately.

If without the refresh button, the new service worker will be active after all clients are closed. This means that visitors cannot see new contents until they close all tabs of your site. But the refresh button activates the new service worker immediately.

popupComponent

  • Type: string
  • Default: undefined

A custom component to replace the default popup component.

Also see:

Migration from 0.x.x

Now that we have plugin API, all features' options that are in plugin's areas will become plugin options.

Service Worker

module.exports = {
- serviceWorker: true,
+ plugins: ['@vuepress/pwa']
}

SW-Update Popup

module.exports = {
  themeConfig: {
-   serviceWorker: {
-     updatePopup: { 
-        message: "New content is available.", 
-        buttonText: "Refresh" 
-     }
-   }
  },
+  plugins: {
+   '@vuepress/pwa': {
+      serviceWorker: true,
+      updatePopup: {
+        message: "New content is available.",
+        buttonText: "Refresh"
+      }
+    }
+ }
}

For i18n user:

module.exports = {
  themeConfig: {
    '/': {
-     serviceWorker: {
-       updatePopup: {
-         message: "New content is available.",
-         buttonText: "Refresh"
-       }
-     }
    },
    '/zh/': {
-     serviceWorker: {
-       updatePopup: {
-         message: "发现新内容可用",
-         buttonText: "刷新"
-       }
-     }
    }
  },
+  plugins: {
+    '@vuepress/pwa': {
+      serviceWorker: true,
+      updatePopup: {
+        '/': {
+          message: "New content is available.",
+          buttonText: "Refresh"
+        },
+        '/zh/': {
+          message: "发现新内容可用",
+          buttonText: "刷新"
+        }
+      }
+    }
+  }

It's worth mentioning that the PWA plugin has above i18n built in, so if you want to use the default i18n directly, you can abbreviate the above configuration as:

module.exports = {
  plugins: {
    '@vuepress/pwa': {
      serviceWorker: true,
      updatePopup: true
    }
  }
}

Feel free to submit PRs to improve the default i18n configuration.

Customize the SW-Update Popup UI

The default sw-update popup component provides a default slot which gives you the ability to fully control the appearence of the popup.

First, you need to create a global component (e.g. MySWUpdatePopup) at .vuepress/components. A simple component created based on the default component is as follows:

<template>
  <SWUpdatePopup>
    <div
      slot-scope="{ enabled, reload, message, buttonText }"
      class="my-sw-update-popup">
      {{ message }}<br>
      <button @click="reload">{{ buttonText }}</button>
    </div>
  </SWUpdatePopup>
</template>

<script>
import SWUpdatePopup from '@vuepress/plugin-pwa/lib/SWUpdatePopup.vue'

export default {
  components: { SWUpdatePopup }
}
</script>

<style>
.my-sw-update-popup {
  text-align: right;
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-color: #fff;
  font-size: 20px;
  padding: 10px;
  border: 5px solid #3eaf7c;
}

.my-sw-update-popup button {
  border: 1px solid #fefefe;
}
</style>

Then, update your plugin:

module.exports = {
   plugins: {
    '@vuepress/pwa': {
       serviceWorker: true,
+      popupComponent: 'MySWUpdatePopup',
       updatePopup: true
     }
  }
}

Also see:

2.0.0-rc.26

4 days ago

2.0.0-rc.24

19 days ago

2.0.0-rc.22

23 days ago

2.0.0-rc.23

23 days ago

2.0.0-rc.21

1 month ago

2.0.0-rc.20

1 month ago

2.0.0-rc.19

2 months ago

2.0.0-rc.18

2 months ago

2.0.0-rc.17

2 months ago

2.0.0-rc.16

2 months ago

2.0.0-rc.14

3 months ago

2.0.0-rc.12

3 months ago

2.0.0-rc.11

3 months ago

2.0.0-rc.10

3 months ago

2.0.0-rc.7

3 months ago

2.0.0-rc.3

3 months ago

2.0.0-rc.1

3 months ago

2.0.0-beta.66

10 months ago

2.0.0-beta.65

10 months ago

2.0.0-beta.64

10 months ago

2.0.0-beta.68

6 months ago

2.0.0-beta.67

8 months ago

1.9.10

8 months ago

2.0.0-rc.0

5 months ago

2.0.0-beta.63

11 months ago

2.0.0-beta.62

12 months ago

2.0.0-beta.61

1 year ago

1.9.9

1 year ago

2.0.0-beta.60

1 year ago

2.0.0-beta.55

1 year ago

2.0.0-beta.54

1 year ago

2.0.0-beta.53

2 years ago

2.0.0-beta.52

2 years ago

2.0.0-beta.59

1 year ago

2.0.0-beta.58

1 year ago

2.0.0-beta.57

1 year ago

2.0.0-beta.56

1 year ago

1.9.8

1 year ago

2.0.0-beta.51

2 years ago

2.0.0-beta.50

2 years ago

2.0.0-beta.49

2 years ago

2.0.0-beta.48

2 years ago

2.0.0-beta.47

2 years ago

2.0.0-beta.40

2 years ago

2.0.0-beta.44

2 years ago

2.0.0-beta.43

2 years ago

2.0.0-beta.42

2 years ago

2.0.0-beta.41

2 years ago

2.0.0-beta.46

2 years ago

2.0.0-beta.45

2 years ago

2.0.0-beta.38

2 years ago

2.0.0-beta.37

2 years ago

2.0.0-beta.36

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

2.0.0-beta.33

2 years ago

2.0.0-beta.32

2 years ago

2.0.0-beta.35

2 years ago

2.0.0-beta.34

2 years ago

2.0.0-beta.29

2 years ago

2.0.0-beta.28

2 years ago

1.9.7

2 years ago

1.9.6

2 years ago

1.9.5

2 years ago

1.9.4

2 years ago

1.9.3

2 years ago

1.9.2

2 years ago

1.8.3

2 years ago

2.0.0-beta.27

2 years ago

2.0.0-beta.26

3 years ago

2.0.0-beta.25

3 years ago

2.0.0-beta.24

3 years ago

2.0.0-beta.23

3 years ago

2.0.0-beta.22

3 years ago

2.0.0-beta.21

3 years ago

2.0.0-beta.20

3 years ago

2.0.0-beta.19

3 years ago

2.0.0-beta.15

3 years ago

2.0.0-beta.18

3 years ago

2.0.0-beta.17

3 years ago

2.0.0-beta.9

3 years ago

2.0.0-beta.11

3 years ago

2.0.0-beta.10

3 years ago

2.0.0-beta.14

3 years ago

2.0.0-beta.13

3 years ago

2.0.0-beta.12

3 years ago

2.0.0-beta.8

3 years ago

2.0.0-beta.7

3 years ago

2.0.0-beta.6

3 years ago

2.0.0-beta.5

3 years ago

2.0.0-beta.4

3 years ago

2.0.0-beta.1

3 years ago

2.0.0-beta.0

3 years ago

2.0.0-alpha.25

3 years ago

1.8.2

3 years ago

2.0.0-alpha.24

3 years ago

1.8.1

3 years ago

2.0.0-alpha.22

3 years ago

2.0.0-alpha.23

3 years ago

2.0.0-alpha.20

3 years ago

2.0.0-alpha.19

3 years ago

2.0.0-alpha.18

3 years ago

2.0.0-alpha.17

3 years ago

2.0.0-alpha.16

3 years ago

1.8.0

3 years ago

2.0.0-alpha.15

3 years ago

2.0.0-alpha.14

3 years ago

2.0.0-alpha.13

3 years ago

2.0.0-alpha.12

3 years ago

2.0.0-alpha.9

3 years ago

2.0.0-alpha.8

3 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.0-rc.1

5 years ago

1.0.0-beta.2

5 years ago

1.0.0-beta.1

5 years ago

1.0.0-alpha.50

5 years ago

1.0.0-alpha.49

5 years ago

1.0.0-alpha.48

5 years ago

1.0.0-alpha.47

5 years ago

1.0.0-alpha.46

5 years ago

1.0.0-alpha.45

5 years ago

1.0.0-alpha.44

5 years ago

1.0.0-alpha.43

5 years ago

1.0.0-alpha.42

5 years ago

1.0.0-alpha.41

5 years ago

1.0.0-alpha.40

5 years ago

1.0.0-alpha.39

5 years ago

1.0.0-alpha.38

5 years ago

1.0.0-alpha.37

5 years ago

1.0.0-alpha.36

5 years ago

1.0.0-alpha.35

5 years ago

1.0.0-alpha.34

5 years ago

1.0.0-alpha.33

5 years ago

1.0.0-alpha.32

5 years ago

1.0.0-alpha.31

5 years ago

1.0.0-alpha.30

5 years ago

1.0.0-alpha.29

5 years ago

1.0.0-alpha.28

5 years ago

1.0.0-alpha.27

5 years ago

1.0.0-alpha.26

5 years ago

1.0.0-alpha.25

5 years ago

1.0.0-alpha.24

5 years ago

1.0.0-alpha.23

5 years ago

1.0.0-alpha.22

5 years ago

1.0.0-alpha.21

5 years ago

1.0.0-alpha.20

5 years ago

1.0.0-alpha.19

5 years ago

1.0.0-alpha.18

5 years ago

1.0.0-alpha.17

5 years ago

1.0.0-alpha.16

6 years ago

1.0.0-alpha.15

6 years ago

1.0.0-alpha.14

6 years ago

1.0.0-alpha.13

6 years ago

1.0.0-alpha.12

6 years ago

1.0.0-alpha.11

6 years ago

1.0.0-alpha.10

6 years ago

1.0.0-alpha.9

6 years ago

1.0.0-alpha.8

6 years ago

1.0.0-alpha.7

6 years ago

1.0.0-alpha.6

6 years ago

1.0.0-alpha.5

6 years ago

1.0.0-alpha.4

6 years ago

1.0.0-alpha.3

6 years ago

1.0.0-alpha.2

6 years ago

1.0.0-alpha.1

6 years ago

1.0.0-alpha.0

6 years ago