From 782c61a38c316b6a329e6762237e2326c6155768 Mon Sep 17 00:00:00 2001 From: rjl <98n9@163.com> Date: Mon, 16 Mar 2026 10:55:53 +0800 Subject: [PATCH] =?UTF-8?q?chore(admin):=20=E4=BC=98=E5=8C=96PWA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=B9=B6=E6=9B=B4=E6=96=B0=E8=B5=84=E6=BA=90=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增强PWA开发环境支持,添加devOptions配置以便调试 - 优化Workbox缓存策略,排除大型SVG文件预缓存 - 添加运行时缓存规则支持SVG、图片等资源的CacheFirst策略 - 更新PWA manifest图标路径,使用public文件夹中的新图标资源 - 添加Service Worker注册文件和Workbox库文件 - 替换favicon.svg为favicon.ico,新增多种尺寸的PWA图标 - 生成PWA构建报告文件 - 优化manifest描述信息 --- apps/admin/.env.dev | 4 +- apps/admin/build/plugins/pwa.ts | 63 +- apps/admin/index.html | 2 +- apps/admin/package.json | 2 +- apps/admin/public/favicon.ico | Bin 0 -> 3676 bytes apps/admin/public/favicon.svg | 60 - apps/admin/public/images/apple-touch-icon.png | Bin 0 -> 2445 bytes apps/admin/public/images/favicon.ico | Bin 0 -> 3676 bytes apps/admin/public/images/favicon.png | Bin 0 -> 1092 bytes apps/admin/public/images/nonsupport.svg | 1 + apps/admin/public/images/pwa_logo_192.png | Bin 0 -> 2584 bytes apps/admin/public/images/pwa_logo_512.png | Bin 0 -> 5649 bytes apps/admin/report.html | 4950 +++++++++++++++++ .../custom/user/CompetitionLayout.vue | 129 +- eslint.config.js | 1 + 15 files changed, 5121 insertions(+), 91 deletions(-) create mode 100644 apps/admin/public/favicon.ico delete mode 100644 apps/admin/public/favicon.svg create mode 100644 apps/admin/public/images/apple-touch-icon.png create mode 100644 apps/admin/public/images/favicon.ico create mode 100644 apps/admin/public/images/favicon.png create mode 100644 apps/admin/public/images/nonsupport.svg create mode 100644 apps/admin/public/images/pwa_logo_192.png create mode 100644 apps/admin/public/images/pwa_logo_512.png create mode 100644 apps/admin/report.html diff --git a/apps/admin/.env.dev b/apps/admin/.env.dev index 6eea838..75238fd 100644 --- a/apps/admin/.env.dev +++ b/apps/admin/.env.dev @@ -3,9 +3,9 @@ # VITE_SERVICE_BASE_URL=http://192.168.5.140:9999 -# VITE_SERVICE_BASE_URL=https://api.qyzhjy.com +VITE_SERVICE_BASE_URL=http://api.ydzx.qyzhjy.com -VITE_SERVICE_BASE_URL=https://172.16.10.130:5000 +# VITE_SERVICE_BASE_URL=https://172.16.10.130:5000 VITE_OTHER_SERVICE_BASE_URL= `{ "demo": "http://localhost:9528" diff --git a/apps/admin/build/plugins/pwa.ts b/apps/admin/build/plugins/pwa.ts index e84ccff..c2b7d65 100644 --- a/apps/admin/build/plugins/pwa.ts +++ b/apps/admin/build/plugins/pwa.ts @@ -1,11 +1,24 @@ +import type { PluginOption } from 'vite' import { VitePWA } from 'vite-plugin-pwa' -export function setupPWA() { +export function setupPWA(): PluginOption { return VitePWA({ registerType: 'autoUpdate', + // 添加 devOptions 以便在开发环境调试 + devOptions: { + enabled: false, // 开发环境启用 + type: 'module', + }, workbox: { - globPatterns: ['**/*.{js,css,html,ico,png,svg,webp,jpg,jpeg}'], + // 排除大型 SVG 文件,避免预缓存 + globIgnores: [ + '**/team-title-bg*.svg', + '**/cover-bg-active*.svg', + '**/*-bg-animation*.svg', + ], + globPatterns: ['**/*.{js,css,html,ico,png,webp,jpg,jpeg}', '**/*.svg'], runtimeCaching: [ + // 字体缓存 { urlPattern: /^https:\/\/fonts\.googleapis\.com\/.*/i, handler: 'CacheFirst', @@ -17,34 +30,46 @@ export function setupPWA() { }, }, }, + // 大型 SVG 文件运行时缓存 + { + urlPattern: /.*\.(svg)$/, + handler: 'CacheFirst', + options: { + cacheName: 'svg-cache', + expiration: { + maxEntries: 50, + maxAgeSeconds: 60 * 60 * 24 * 30, // 30 days + }, + }, + }, + // 图片资源缓存 + { + urlPattern: /.*\.(png|jpg|jpeg|webp|gif)$/, + handler: 'CacheFirst', + options: { + cacheName: 'images-cache', + expiration: { + maxEntries: 100, + maxAgeSeconds: 60 * 60 * 24 * 30, // 30 days + }, + }, + }, ], }, includeAssets: ['favicon.ico', 'apple-touch-icon.png', 'masked-icon.svg'], manifest: { name: '阅读之星竞赛系统', short_name: '阅读之星', - description: '教育学会树人研究院阅读之星竞赛系统', + description: '树人研究院阅读之星竞赛系统', theme_color: '#ffffff', background_color: '#ffffff', display: 'standalone', orientation: 'landscape', icons: [ - { - src: 'pwa-192x192.png', - sizes: '192x192', - type: 'image/png', - }, - { - src: 'pwa-512x512.png', - sizes: '512x512', - type: 'image/png', - }, - { - src: 'pwa-512x512.png', - sizes: '512x512', - type: 'image/png', - purpose: 'any maskable', - }, + { src: 'images/pwa_logo_192.png', sizes: '192x192', type: 'image/png' }, + { src: 'images/pwa_logo_512.png', sizes: '512x512', type: 'image/png' }, + { src: 'images/pwa_logo_512.png', sizes: '512x512', type: 'image/png', purpose: 'any' }, + { src: 'images/pwa_logo_512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, ], }, }) diff --git a/apps/admin/index.html b/apps/admin/index.html index b04ac55..442f72c 100644 --- a/apps/admin/index.html +++ b/apps/admin/index.html @@ -2,7 +2,7 @@ - + %VITE_APP_TITLE% diff --git a/apps/admin/package.json b/apps/admin/package.json index 39e0f6a..8c1f4f4 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -16,7 +16,7 @@ "dev": "vite --mode dev", "dev:prod": "vite --mode prod", "gen-route": "sa gen-route", - "lint": "eslint . --fix", + "lint": "eslint src --fix", "prepare": "simple-git-hooks", "preview": "vite preview", "release": "sa release", diff --git a/apps/admin/public/favicon.ico b/apps/admin/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a9aadf40f470f2967e3bf3c06366386f4fbb9d12 GIT binary patch literal 3676 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 uQYtw - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/admin/public/images/apple-touch-icon.png b/apps/admin/public/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..092eb4fcd80ed9d3b1b9a69ca0510daa69bd046e GIT binary patch literal 2445 zcmZWqc{mhm7a#i;nkHH1MwSK*vdko7nXwfbk~Pavwmb4ox=hxt$$WOn7G-S1h)|)- zSjq@pJ54Il#1JEsa4%VA65qJ@e$RKG=R41H&hK~5`+LrL-}BF#?(B3{T2e_8002na z+u6AAv3cLch4@htw8@VEZ)dcdEjsjunauZIiW{Pe~QYwl4! zcj?ROtC5*Xa@)xhoafJ$UUoC{b7`7tqqxv_i3tnTW+1|Fn?FSw@8aYNAh-wLS9#7A z8$WYud0@9dn|~m2&CV+l0Fdd~cY(g}2SNPeaPUR@5PSO*0C9dI29OaD1W55&1m6z{ z2mu86xbI2=B7b54pM(GASNL4(Z;c?Ig9QJl4^0*RQ=h=E@7r3G0AP{7ivMC@IPO|R zaAagK{|=%6K#mwdn6J_|G|(5w{fi6my8+05*A4Xb1;~GO-`fKK1j&DO-`}v%KluJ6 zsf2~6{Ff}++gQ5Ad|;O{+baLn& zVBV03v*5{gggEzdngK_6PX8M);&HCLuZ))8JUK_lF0G{BR3`kOKM>+Te7zx#*z$Fs zF>d|tnicO!Q2(QUc`w8C+7__0b(xv|8GA7MG3TOt^g*t$&5l-Mh`g#mJ|m+**b^0G zIzjfPB^^~nDK`d20)>Eq#9^B}6tZ7ebfsPZoNgU(@dZxfT3T$E(=|PK_Mm9lJ15=bWLVTw=~oc2@A8ZRVYc zPV6Lbi9w1!wuD{Dv6)w-T^a|7mby37JF2SP1LA_-9(5lpnc8)5l%fQpA95W%b|7-z zq|9+r?}aDKlDBfF zc;v;u6EXN;uU_Yr8B^Fcy0?37*E#CfyW6-tjf-JvMa7!4E;qo?8b?1g(QD%d=8*P> z)cCb|qr5k-@uw+jC*K5riOH8ABu;=aK@?dF|CpVRs@GlQC`wFT56VKFJ5*=W1XvlW zz|{o?im2}@=+mpggTc#3d($8s&gxc+! zmGeI;P7qh?9r{5VjhaPT#~pul1(LEft~ZR&gTi8PJ8m%CVdbsuH8(fi3;3?^jBc(* zowV=s!6!7?u|RzwWvJG?q54r?U8jyxCNqR17G`!cE1X1~i*{_Wa4dO zZJ9xRGT%+VC$z2->2Sr-a@BV5=M`MB@eLMbkgAv_Br=sHOPoSg`FcqUD;!XA8Z3CA zsn{he@dLQA^Ats459}FK{LdyQOS#$X-nlU8dL%rNP$;Scs1hRQGvtDFYi7bRngByrS<9Te@8JgU|u7 zl?7#({S#aJCmjn0qsYff4C75*s{Pp;qUKdXxY%p4if{{gyjHnGIB~&0V8Tq4avM)> z3uQL51Gt!v$RVtRSRacw42<*06AMhpNtsyg&f!b#A1-)*>oWXic6`vEs3MlAOCz z%`=A8v#q+w4efpMEJmoBd~4g;hXm&!^LcY8WYhg*-4w-M>ztlf1NzfCQ>JA7FqB*z>c#~2I`EtMEdBvbd$wRPV@}pRekItnqjwxU_cS?X=L?#nVyq# zr`L}MBstv=ODx1%cAi||@))j{>-&bkSG*2*l7_%v27M4|r*WfmsS&59?YjYwaaa6u zf>oHevV&CV8t|7QUN`IeHr(W5lAx7g--TJicL;Q5B$Nh_`^(}~hG7^{i}+de(hFeUBOvup6h7+vWv z^g?RkJieuO>CEO!7|7NA&Ki8krQ6HY{$nu)B`3{HHYP=!{ZSfO%K@hL7u7@`27<2K=n`2A{88-(9l)Li()tJ zb9<&)E(TlXo;B51veEf>9{M!?mnS(vjRv7VP<~!@e_7OsHN(_G5I z*2*8pen-b+km@QLd6y3R>v{Ner)Y*rn0iZ$h0-%CRp6o1Ojv8!tDQHrG0UWG$C=YR zMYoYYlxG<;M;qg-qBwpZ;r8X7G{#2E+4tKh$FUkjHpa^|&N$`WDuHF_x!#fAirWAC N?QNZG9$Q@^{s%6SZ}R{E literal 0 HcmV?d00001 diff --git a/apps/admin/public/images/favicon.ico b/apps/admin/public/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a9aadf40f470f2967e3bf3c06366386f4fbb9d12 GIT binary patch literal 3676 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 literal 0 HcmV?d00001 diff --git a/apps/admin/public/images/nonsupport.svg b/apps/admin/public/images/nonsupport.svg new file mode 100644 index 0000000..034e8d4 --- /dev/null +++ b/apps/admin/public/images/nonsupport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/public/images/pwa_logo_192.png b/apps/admin/public/images/pwa_logo_192.png new file mode 100644 index 0000000000000000000000000000000000000000..83987118fe532d92f2713558b90eebd4885848cc GIT binary patch literal 2584 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 literal 0 HcmV?d00001 diff --git a/apps/admin/public/images/pwa_logo_512.png b/apps/admin/public/images/pwa_logo_512.png new file mode 100644 index 0000000000000000000000000000000000000000..e5d82ea9d14be610c2f81f40369a4fec16a04c9a GIT binary patch literal 5649 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 literal 0 HcmV?d00001 diff --git a/apps/admin/report.html b/apps/admin/report.html new file mode 100644 index 0000000..3faf44e --- /dev/null +++ b/apps/admin/report.html @@ -0,0 +1,4950 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/apps/admin/src/components/custom/user/CompetitionLayout.vue b/apps/admin/src/components/custom/user/CompetitionLayout.vue index 87d0b06..20f0295 100644 --- a/apps/admin/src/components/custom/user/CompetitionLayout.vue +++ b/apps/admin/src/components/custom/user/CompetitionLayout.vue @@ -1,6 +1,6 @@