From b62bb022bdab2260ad2046641fc9753349175b04 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 9 Sep 2026 18:39:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E6=9E=84=E5=BB=BA=E5=90=8E?= =?UTF-8?q?=E8=A1=A5=E5=9B=9E=20assets/.gitkeep=EF=BC=8C=E4=BF=9D=E8=AF=81?= =?UTF-8?q?=E6=96=B0=E5=85=8B=E9=9A=86=E5=8F=AF=E7=9B=B4=E6=8E=A5=20go=20b?= =?UTF-8?q?uild?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/internal/webui/assets/.gitkeep | 0 web/vite.config.ts | 20 +++++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 server/internal/webui/assets/.gitkeep diff --git a/server/internal/webui/assets/.gitkeep b/server/internal/webui/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/web/vite.config.ts b/web/vite.config.ts index 898c7db..7d4b569 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -1,17 +1,31 @@ import { fileURLToPath, URL } from 'node:url' -import { defineConfig } from 'vite' +import { writeFileSync } from 'node:fs' +import { join } from 'node:path' +import { defineConfig, type Plugin } from 'vite' import vue from '@vitejs/plugin-vue' const resolve = (p: string) => fileURLToPath(new URL(p, import.meta.url)) +const outDir = resolve('../server/internal/webui/assets') + +// emptyOutDir 会把 .gitkeep 一起删掉,导致「新克隆的仓库没构建前端时 go:embed 匹配不到文件」。 +// 构建结束后补回来,保证任何状态下 go build 都能通过。 +function keepAssetsGitkeep(): Plugin { + return { + name: 'scoreboard:keep-assets-gitkeep', + closeBundle() { + writeFileSync(join(outDir, '.gitkeep'), '') + }, + } +} export default defineConfig({ - plugins: [vue()], + plugins: [vue(), keepAssetsGitkeep()], resolve: { alias: { '@': resolve('./src') }, }, build: { // 构建产物直接输出到 Go 的 embed 目录 - outDir: resolve('../server/internal/webui/assets'), + outDir, emptyOutDir: true, rollupOptions: { input: {