From cb8e10cc7e2e168120f2c89056f44312892eb169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Wed, 24 Dec 2025 18:20:51 +0800 Subject: [PATCH] Add sw_template.js to build and improve service worker loading Updated the Vite config to copy sw_template.js to the static assets during build. Modified backend to load sw_template.js from the static directory if available, falling back to the source assets if not. This ensures the service worker template is correctly served in production builds. --- packages/napcat-shell/vite.config.ts | 1 + packages/napcat-webui-backend/index.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/napcat-shell/vite.config.ts b/packages/napcat-shell/vite.config.ts index 5b4f74c1..f07fa251 100644 --- a/packages/napcat-shell/vite.config.ts +++ b/packages/napcat-shell/vite.config.ts @@ -27,6 +27,7 @@ const ShellBaseConfigPlugin: PluginOption[] = [ targets: [ { src: '../napcat-native/', dest: 'dist/native', flatten: false }, { src: '../napcat-webui-frontend/dist/', dest: 'dist/static/', flatten: false }, + { src: '../napcat-webui-backend/src/assets/sw_template.js', dest: 'dist/static/' }, { src: '../napcat-core/external/napcat.json', dest: 'dist/config/' }, { src: '../../package.json', dest: 'dist' }, { src: '../napcat-shell-loader', dest: 'dist' }, diff --git a/packages/napcat-webui-backend/index.ts b/packages/napcat-webui-backend/index.ts index d39efae8..f9a238be 100644 --- a/packages/napcat-webui-backend/index.ts +++ b/packages/napcat-webui-backend/index.ts @@ -200,7 +200,11 @@ export async function InitWebUi (logger: ILogWrapper, pathWrapper: NapCatPathWra app.get('/webui/sw.js', async (_req, res) => { try { // 读取模板文件 - const templatePath = resolve(__dirname, 'src/assets/sw_template.js'); + let templatePath = resolve(__dirname, 'static', 'sw_template.js'); + if (!existsSync(templatePath)) { + templatePath = resolve(__dirname, 'src', 'assets', 'sw_template.js'); + } + let swContent = readFileSync(templatePath, 'utf-8'); // 替换版本号