Skip to content

Commit 4c05bc5

Browse files
chore: pwa
1 parent 538d8a4 commit 4c05bc5

File tree

9 files changed

+39
-45
lines changed

9 files changed

+39
-45
lines changed

.vscode/extensions.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"golang.go"
4+
]
5+
}

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "go-proxy-bingai",
3-
"version": "1.8.5",
3+
"version": "1.8.6",
44
"private": true,
55
"scripts": {
66
"dev": "vite",

frontend/src/sw.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ declare let self: ServiceWorkerGlobalScope;
88
const CACHE_NAME_PREFIX = 'BingAI';
99

1010
self.addEventListener('message', (event) => {
11-
if (event.data && event.data.type === 'SKIP_WAITING') self.skipWaiting();
11+
if (event.data && event.data.type === 'SKIP_WAITING') {
12+
self.skipWaiting();
13+
}
1214
});
1315

1416
// self.__WB_MANIFEST is default injection point
@@ -21,7 +23,12 @@ cleanupOutdatedCaches();
2123
registerRoute(new NavigationRoute(createHandlerBoundToURL('./index.html')));
2224

2325
registerRoute(
24-
({ request }) => request.destination === 'style' || request.destination === 'manifest' || request.destination === 'script' || request.destination === 'worker',
26+
({ request, url }) => {
27+
if (url.pathname.includes('/sw.js')) {
28+
return false;
29+
}
30+
return request.destination === 'style' || request.destination === 'manifest' || request.destination === 'script' || request.destination === 'worker';
31+
},
2532
new StaleWhileRevalidate({
2633
cacheName: `${CACHE_NAME_PREFIX}-assets`,
2734
plugins: [new CacheableResponsePlugin({ statuses: [200] })],
@@ -44,3 +51,18 @@ registerRoute(
4451
],
4552
})
4653
);
54+
55+
self.addEventListener('activate', async (ev) => {
56+
const cacheKeys = await caches.keys();
57+
for (const cacheKey of cacheKeys) {
58+
// 删除旧缓存
59+
if (!cacheKey.startsWith('workbox') && !cacheKey.startsWith(CACHE_NAME_PREFIX)) {
60+
await caches.delete(cacheKey);
61+
console.log(`del cache : `, cacheKey);
62+
}
63+
}
64+
});
65+
66+
self.addEventListener('install', (ev) => {
67+
self.skipWaiting();
68+
});

frontend/vite.config.ts

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ const __APP_INFO__ = {
1515

1616
const initPwaOptions = (env: Record<string, string>) => {
1717
const pwaOptions: Partial<VitePWAOptions> = {
18-
// srcDir: 'src',
19-
// filename: 'sw.ts',
18+
srcDir: 'src',
19+
filename: 'sw.ts',
2020
includeAssets: ['img/logo.svg'],
2121
manifest: {
2222
name: 'BingAI',
@@ -45,7 +45,7 @@ const initPwaOptions = (env: Record<string, string>) => {
4545
// enabled: true,
4646
// type: 'module',
4747
// },
48-
// strategies: 'injectManifest',
48+
strategies: 'injectManifest',
4949
// workbox: {
5050
// cleanupOutdatedCaches: true,
5151
// clientsClaim: true,
@@ -54,39 +54,6 @@ const initPwaOptions = (env: Record<string, string>) => {
5454
// 取消注册服务工作进程
5555
// selfDestroying: true,
5656
registerType: 'autoUpdate',
57-
workbox: {
58-
globPatterns: ['**/*.{js,css,html,ico,png,svg}'],
59-
runtimeCaching: [
60-
{
61-
urlPattern: /(.*?)\.(js|css|ts)/, // js /css /ts静态资源缓存
62-
handler: 'StaleWhileRevalidate',
63-
options: {
64-
cacheName: 'BingAI-assets',
65-
expiration: {
66-
maxEntries: 100,
67-
maxAgeSeconds: 60 * 60 * 24 * 7,
68-
},
69-
cacheableResponse: {
70-
statuses: [0, 200],
71-
},
72-
},
73-
},
74-
{
75-
urlPattern: /(.*?)\.(png|jpe?g|svg|gif|bmp|psd|tiff|tga|eps|ico)/, // 图片缓存
76-
handler: 'CacheFirst',
77-
options: {
78-
cacheName: 'BingAI-images',
79-
expiration: {
80-
maxEntries: 100,
81-
maxAgeSeconds: 60 * 60 * 24 * 7,
82-
},
83-
cacheableResponse: {
84-
statuses: [0, 200],
85-
},
86-
},
87-
},
88-
],
89-
},
9057
};
9158
return pwaOptions;
9259
};

web/assets/index-5d6cbc08.js renamed to web/assets/index-199bf4d7.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/assets/index-36027b8d.js renamed to web/assets/index-3378e00b.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
<script src="/web/js/bing/chat/global.js"></script>
4141
<script src="/web/js/bing/chat/amd.js"></script>
4242
<script src="/web/js/bing/chat/config.js"></script>
43-
<script type="module" crossorigin src="/web/assets/index-36027b8d.js"></script>
43+
<script type="module" crossorigin src="/web/assets/index-3378e00b.js"></script>
4444
<link rel="stylesheet" href="/web/assets/index-4b631cfd.css">
4545
<link rel="manifest" href="/web/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/web/registerSW.js"></script></head>
4646

web/sw.js

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/workbox-9d4bbdea.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)