vue.js - 如何在 vue 应用程序中使用 register-service-worker 进行跳过等待?
问题描述
registerServiceWorker.ts
我的申请中有以下内容
/* eslint-disable no-console */
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'
)
},
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.')
//@ts-ignore
self.skipWaiting();
},
offline() {
console.log('No internet connection found. App is running in offline mode.')
},
error(error) {
console.error('Error during service worker registration:', error)
}
})
}
如何从更新事件中的代码触发跳过等待?
解决方案
我想出了如何使用 vue.config.js 将服务工作者配置为在我的 vue 应用程序中自动跳过等待。
const webpack = require('webpack');
module.exports = {
lintOnSave: false,
chainWebpack: (config) => {
...
},
configureWebpack: {
...
},
pwa: {
...
workboxPluginMode: 'GenerateSW',
workboxOptions: {
skipWaiting: true
}
},
pluginOptions: {
...
},
css: {
// Enable CSS source maps.
sourceMap: process.env.NODE_ENV !== 'production'
},
devServer: {
...
}
};
推荐阅读
- iis - IIS - URL Rewrite2.1 添加 2 条规则会降低网站性能
- android - 如何检测 Android 的三星设备中是否有全屏选项?
- c++ - QML 性能问题
- javascript - React路由器自动重定向到非root页面
- sql - 如何将多行json对象转化为sql表结构化数据?
- javascript - JavaScript, start function when innertext changes
- javascript - 如何使用 React.js 映射 GET 方法响应
- python - pandas中就地内存操作的问题(1/2)
- sql - Google BigQuery SQL:从 JSON(列表和数组)中提取数据到列中
- sql - EF Core 手动创建表