3分鐘搞定vite項(xiàng)目(vue/react)使用vite-plugin-pwa配置為pwa應(yīng)用
將項(xiàng)目配置為pwa模式,就可以在瀏覽器里面看到安裝應(yīng)用的選項(xiàng),并且可以將web網(wǎng)頁(yè)像app一樣添加到手機(jī)桌面或者pad桌面上,或者是電腦桌面上,這樣帶來(lái)的體驗(yàn)就像真的在一個(gè)app上運(yùn)行一樣。為了實(shí)現(xiàn)這個(gè)目的,我們可以為vue項(xiàng)目使用一個(gè)插件:vite-plugin-pwa
vite-plugin-pwa倉(cāng)庫(kù)地址:https://github.com/vite-pwa/vite-plugin-pwa
vite-plugin-pwa文檔地址:Getting Started | Guide | Vite PWA
安裝插件
直接使用npm安裝即可
npm i vite-plugin-pwa -D # yarn yarn add vite-plugin-pwa -D # pnpm pnpm add vite-plugin-pwa -D
配置插件
先有一個(gè)pwa應(yīng)用的圖標(biāo),最好是png格式的,尺寸最好大于192x192的:
在vite.config.js/ts中配置pwa應(yīng)用:
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import { VitePWA } from 'vite-plugin-pwa' // 生產(chǎn)還是開(kāi)發(fā) const mode = 'production' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), VitePWA({ mode: 'development', base: '/', manifest: { name: '應(yīng)用名稱', short_name: '應(yīng)用名稱', description: '應(yīng)用描述', icons: [ //添加圖標(biāo), 注意路徑和圖像像素正確 { src: './public/app.png', sizes: '1024x1024', type: 'image/png', }, ], }, registerType: 'autoUpdate', workbox: { globPatterns: ['**/*.{js,css,html,ico,png,jpg,svg}'], //緩存相關(guān)靜態(tài)資源 runtimeCaching: [ // 配置自定義運(yùn)行時(shí)緩存 mode !== 'production' ? { urlPattern: ({ url }) => url.origin === 'https://app-api-0.com', handler: 'NetworkFirst', options: { cacheName: 'wisbayar-api', cacheableResponse: { statuses: [200], }, }, } : { urlPattern: ({ url }) => url.origin === 'https://app-api.id', handler: 'NetworkFirst', options: { cacheName: 'wisbayar-api', cacheableResponse: { statuses: [200], }, }, }, { urlPattern: /\.(?:png|jpg|jpeg|svg)$/, handler: 'CacheFirst', options: { cacheName: 'wisbayar-images', expiration: { // 最多30個(gè)圖 maxEntries: 30, }, }, }, { urlPattern: /.*\.js.*/, handler: 'StaleWhileRevalidate', options: { cacheName: 'wisbayar-js', expiration: { maxEntries: 30, // 最多緩存30個(gè),超過(guò)的按照LRU原則刪除 maxAgeSeconds: 30 * 24 * 60 * 60, }, cacheableResponse: { statuses: [200], }, }, }, { urlPattern: /.*\.css.*/, handler: 'StaleWhileRevalidate', options: { cacheName: 'wisbayar-css', expiration: { maxEntries: 20, maxAgeSeconds: 30 * 24 * 60 * 60, }, cacheableResponse: { statuses: [200], }, }, }, { urlPattern: /.*\.html.*/, handler: 'StaleWhileRevalidate', options: { cacheName: 'wisbayar-html', expiration: { maxEntries: 20, maxAgeSeconds: 30 * 24 * 60 * 60, }, cacheableResponse: { statuses: [200], }, }, }, ], }, devOptions: { enabled: true, }, }), ], server: { host: '0.0.0.0', }, resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }, })
測(cè)試上線
然后重新運(yùn)行項(xiàng)目,就可以看到瀏覽器頁(yè)面上有標(biāo)識(shí)可以安裝了:
如果想判斷頁(yè)面是不是在pwa中打開(kāi)的,可以嘗試使用:
const isInStandaloneMode = () => (window.matchMedia('(display-mode: standalone)').matches) || (window.navigator.standalone) || document.referrer.includes('android-app://'); if (isInStandaloneMode()) { document.body.innerHTML = "是在pwa中打開(kāi)的" }else { document.body.innerHTML = "請(qǐng)?jiān)趐wa中打開(kāi)" }
到此這篇關(guān)于3分鐘搞定vite項(xiàng)目(vue/react)使用vite-plugin-pwa配置為pwa應(yīng)用的文章就介紹到這了,更多相關(guān)vite項(xiàng)目使用vite-plugin-pwa配置為pwa內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue通過(guò)定時(shí)器實(shí)現(xiàn)垂直滾動(dòng)公告
這篇文章主要為大家詳細(xì)介紹了vue通過(guò)定時(shí)器實(shí)現(xiàn)垂直滾動(dòng)公告,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04在vue中實(shí)現(xiàn)嵌套頁(yè)面(iframe)
這篇文章主要介紹了在vue中實(shí)現(xiàn)嵌套頁(yè)面(iframe),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07淺談vue-router2路由參數(shù)注意的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談vue-router2路由參數(shù)注意的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11vue.js?Table?組件自定義列寬實(shí)現(xiàn)核心方法
這篇文章主要介紹了vue.js?Table?組件自定義列寬實(shí)現(xiàn)核心方法,文圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07Element-ui el-tree新增和刪除節(jié)點(diǎn)后如何刷新tree的實(shí)例
這篇文章主要介紹了Element-ui el-tree新增和刪除節(jié)點(diǎn)后如何刷新tree的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08vue video和vue-video-player實(shí)現(xiàn)視頻鋪滿教程
這篇文章主要介紹了vue video和vue-video-player實(shí)現(xiàn)視頻鋪滿教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10