Vue項(xiàng)目引入PWA的步驟
Vue項(xiàng)目引入PWA很簡單,操作步驟如下:
1. 安裝依賴
vue add @vue/pwa
由于使用add關(guān)鍵字,安裝成功后會(huì)在項(xiàng)目中創(chuàng)建一些文件,如果項(xiàng)目使用了git,可以很容易的看出文件變化:

src文件夾下會(huì)生成一個(gè)registerServiceWorker.js文件,并在main.js中導(dǎo)入,這個(gè)文件自動(dòng)生成了注冊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. 手動(dòng)添加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)用啟動(dò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)用程序啟動(dòng)器中擁有自己的圖標(biāo)等。這個(gè)模式中,用戶代理將移除用于控制導(dǎo)航的UI元素,但是可以包括其他UI元素,例如狀態(tài)欄。 |
| minimal-ui | 該應(yīng)用程序?qū)⒖雌饋硐褚粋€(gè)獨(dú)立的應(yīng)用程序,但會(huì)有瀏覽器地址欄, 樣式因?yàn)g覽器而異。 |
| browser | 該應(yīng)用程序在傳統(tǒng)的瀏覽器標(biāo)簽或新窗口中打開,具體實(shí)現(xiàn)取決于瀏覽器和平臺(tái), 這是默認(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ì)動(dòng)手搭建一個(gè)VuePress 站點(diǎn)及開啟PWA與自動(dòng)部署的方法
- 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動(dòng)畫場景操作
- 使用vue引入maptalks地圖及聚合效果的實(shí)現(xiàn)
- 淺談在vue-cli3項(xiàng)目中解決動(dò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-09
vue3實(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-05
vue報(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

