[](http://badge.fury.io/js/hexo-pwa) [](https://www.npmjs.com/package/hexo-pwa)
npm install @teampimcserver/hexo-pwa 
Progressive Web Apps (PWA) plugin for Hexo.
hexo-pwa let Hexo sites have these two capabilities.
- Web App Manifest - Users can add your site to mobile home screen
- Service Worker - Make your site available offline
- update README.md
- update yarn.lock
- update package.json
``shell`yarn
$ yarn add @teampimcserver/hexo-pwa
You can configure this plugin in _config.yml.
`yaml`
pwa:
manifest:
path: /manifest.json
body:
name: hexo
short_name: hexo
icons:
- src: /images/android-chrome-192x192.png
sizes: 192x192
type: image/png
- src: /images/android-chrome-512x512.png
sizes: 512x512
type: image/png
start_url: /index.html
theme_color: '#ffffff'
background_color: '#ffffff'
display: standalone
serviceWorker:
path: /sw.js
preload:
urls:
- /
posts: 5
opts:
networkTimeoutSeconds: 5
routes:
- pattern: /hm.baidu.com/
strategy: networkOnly
- pattern: /.*\.(js|css|jpg|jpeg|png|gif)$/
strategy: cacheFirst
- pattern: /\//
strategy: networkFirst
priority: 5
- manifest - manifest configuration
- path - the path of manifest.json, eg: /manifest.jsonmanifest.json
- body - the content of , manifest.json example. body can be null, if not null, hexo-pwa will generate manifest.json with JSON.stringify(body)sw.js
- serviceWorker - service worker configuration
- path: the path of , eg: /sw.js, you shouldn't put sw.js in subdirectory because of the service worker scopecacheFirst
- preload - urls or posts that you want to preload
- urls: an array of the preload urls
- posts: the count of preload posts
- opts: the options for sw-toolbox
- routes - request routes and strategies, based on sw-toolbox. The routes order does matter.
- pattern: url pattern, this config can be express-style or RegExp
- strategy: the strategy you want to choose. All strategies: , networkFirst, cacheOnly, networkOnly, fastest. Caution: Log requests should use networkOnly` strategy.
- priority - plugin priority (default value is 10)
MIT