Vue項(xiàng)目引入PWA的步驟
Vue項(xiàng)目引入PWA很簡單,操作步驟如下:
1. 安裝依賴
vue add @vue/pwa
由于使用add關(guān)鍵字,安裝成功后會在項(xiàng)目中創(chuàng)建一些文件,如果項(xiàng)目使用了git,可以很容易的看出文件變化:
src文件夾下會生成一個(gè)registerServiceWorker.js文件,并在main.js中導(dǎo)入,這個(gè)文件自動生成了注冊service worker的代碼。registerServiceWorker.js的代碼如下:
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) } }) }
2. 在vue.config.js文件中配置pwa:
module.exports = { pwa: { workboxOptions: { skipWaiting: true, clientsClaim: true, importWorkboxFrom: 'local', importsDirectory: 'js', navigateFallback: '/', navigateFallbackBlacklist: [/\/api\//] } } }
3. 手動添加manifest.json文件到項(xiàng)目的public目錄下,manifest.json內(nèi)容如下:
{ "short_name": "應(yīng)用簡稱", // 將來展示在手機(jī)桌面應(yīng)用圖標(biāo)下 "name": "應(yīng)用全稱", // 將來展示在電腦桌面應(yīng)用圖標(biāo)下 "icon": [ { "src": "./img/icons/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "./img/icons/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } ], // 桌面圖標(biāo),是一個(gè)數(shù)組,注意圖片大小和格式 "start_url": "index.html", // 應(yīng)用啟動時(shí)的url "display": "standalone", "background_color": "#080403", "theme_color": "#080403" }
display字段表示顯示模式,具體參數(shù)及描述如下:
顯示模式 | 描述 |
fullscreen | 全屏顯示, 所有可用的顯示區(qū)域都被使用, 并且不顯示狀態(tài)欄chrome。 |
standalone | 讓這個(gè)應(yīng)用看起來像一個(gè)獨(dú)立的應(yīng)用程序,包括具有不同的窗口,在應(yīng)用程序啟動器中擁有自己的圖標(biāo)等。這個(gè)模式中,用戶代理將移除用于控制導(dǎo)航的UI元素,但是可以包括其他UI元素,例如狀態(tài)欄。 |
minimal-ui | 該應(yīng)用程序?qū)⒖雌饋硐褚粋€(gè)獨(dú)立的應(yīng)用程序,但會有瀏覽器地址欄, 樣式因?yàn)g覽器而異。 |
browser | 該應(yīng)用程序在傳統(tǒng)的瀏覽器標(biāo)簽或新窗口中打開,具體實(shí)現(xiàn)取決于瀏覽器和平臺, 這是默認(rèn)的設(shè)置。 |
4. 在index.html文件中添加如下代碼:
<meta name="theme-color" content="#080403"> <link rel="manifest" href="manifest.json" rel="external nofollow" >
接下來就是見證奇跡的時(shí)刻,執(zhí)行npm run build,查看dist下的index.html文件中是否引入了manifest.json文件,再看看相應(yīng)的配置有沒有生成,如果有,恭喜你,第一個(gè)pwa項(xiàng)目完成了!
以上就是Vue項(xiàng)目引入PWA的步驟的詳細(xì)內(nèi)容,更多關(guān)于Vue項(xiàng)目引入PWA的資料請關(guān)注腳本之家其它相關(guān)文章!
- 超詳細(xì)動手搭建一個(gè)VuePress 站點(diǎn)及開啟PWA與自動部署的方法
- vue引入Excel表格插件的方法
- Vue中引入svg圖標(biāo)的兩種方式
- Vue項(xiàng)目如何引入bootstrap、elementUI、echarts
- 如何在vue 中引入使用jquery
- Vue-cli4 配置 element-ui 按需引入操作
- vue 項(xiàng)目引入echarts 添加點(diǎn)擊事件操作
- vue-cli3 引入 font-awesome的操作
- vue頁面引入three.js實(shí)現(xiàn)3d動畫場景操作
- 使用vue引入maptalks地圖及聚合效果的實(shí)現(xiàn)
- 淺談在vue-cli3項(xiàng)目中解決動態(tài)引入圖片img404的問題
相關(guān)文章
Vue讀取本地靜態(tài)文件json的2種方法以及優(yōu)缺點(diǎn)
這篇文章主要介紹了Vue讀取本地靜態(tài)文件json的2種方法以及優(yōu)缺點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue3實(shí)現(xiàn)H5表單驗(yàn)證組件的示例
本文主要介紹了vue3實(shí)現(xiàn)H5表單驗(yàn)證組件的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用實(shí)戰(zhàn)教程
這篇文章主要介紹了基于Electron24+Vite4+Vue3搭建桌面端應(yīng)用,這次給大家主要分享的是基于electron最新版本整合vite4.x構(gòu)建vue3桌面端應(yīng)用程序,需要的朋友可以參考下2023-05-05vue報(bào)錯(cuò)"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法
這篇文章主要介紹了vue報(bào)錯(cuò)"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01實(shí)現(xiàn)一個(gè)Vue版Upload組件
這篇文章主要介紹了實(shí)現(xiàn)一個(gè)Vue版Upload組件,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08