From 9d1a7cd6996b491eecff98e0eab07fa74c63cfc7 Mon Sep 17 00:00:00 2001 From: techotaku39 Date: Tue, 26 May 2026 15:54:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E5=90=8C=E6=AD=A5=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E9=A1=B5=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-build.yml | 12 ++++++++++++ BillNote_frontend/Dockerfile | 4 ++++ .../src/pages/SettingPage/about.tsx | 3 ++- BillNote_frontend/src/vite-env.d.ts | 2 ++ BillNote_frontend/vite.config.ts | 18 ++++++++++++++++++ Dockerfile.complete | 4 ++++ 6 files changed, 42 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 0446760..cd8d1a9 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -42,6 +42,16 @@ jobs: type=sha,prefix= type=raw,value=latest,enable={{is_default_branch}} + - name: Resolve app version + id: app-version + shell: bash + run: | + if [[ "$GITHUB_REF" == refs/tags/v* ]]; then + echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + else + echo "version=" >> "$GITHUB_OUTPUT" + fi + - name: Build and Push Docker Image uses: docker/build-push-action@v6 with: @@ -50,6 +60,8 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + build-args: | + VITE_APP_VERSION=${{ steps.app-version.outputs.version }} cache-from: type=gha cache-to: type=gha,mode=max platforms: linux/amd64,linux/arm64 diff --git a/BillNote_frontend/Dockerfile b/BillNote_frontend/Dockerfile index 9e54ab9..da5637c 100644 --- a/BillNote_frontend/Dockerfile +++ b/BillNote_frontend/Dockerfile @@ -5,6 +5,10 @@ ARG BASE_REGISTRY=docker.io FROM ${BASE_REGISTRY}/library/node:20-alpine AS builder +# 可由发布 workflow 从 git tag 注入,用于前端 About 页展示版本;未传时由 Vite 回退读取 tauri.conf.json。 +ARG VITE_APP_VERSION= +ENV VITE_APP_VERSION=${VITE_APP_VERSION} + # pnpm pin 到 9.x:lockfile 是 v9 生成;pnpm 11 要求 Node 22+ 与 node:20 不兼容 RUN corepack enable && corepack prepare pnpm@9.15.0 --activate diff --git a/BillNote_frontend/src/pages/SettingPage/about.tsx b/BillNote_frontend/src/pages/SettingPage/about.tsx index 203e5aa..25b69ed 100644 --- a/BillNote_frontend/src/pages/SettingPage/about.tsx +++ b/BillNote_frontend/src/pages/SettingPage/about.tsx @@ -8,6 +8,7 @@ import logo from '@/assets/icon.svg' import wechatQr from '@/assets/wechat.png' export default function AboutPage() { + const appVersion = __APP_VERSION__ const images = [ 'https://common-1304618721.cos.ap-chengdu.myqcloud.com/20250504102850.png', 'https://common-1304618721.cos.ap-chengdu.myqcloud.com/20250504103028.png', @@ -27,7 +28,7 @@ export default function AboutPage() { height={50} className="rounded-lg" /> -

BiliNote v2.0.0

+

BiliNote v{appVersion}

AI 视频笔记生成工具 让 AI 为你的视频做笔记 diff --git a/BillNote_frontend/src/vite-env.d.ts b/BillNote_frontend/src/vite-env.d.ts index 11f02fe..54eaa07 100644 --- a/BillNote_frontend/src/vite-env.d.ts +++ b/BillNote_frontend/src/vite-env.d.ts @@ -1 +1,3 @@ /// + +declare const __APP_VERSION__: string diff --git a/BillNote_frontend/vite.config.ts b/BillNote_frontend/vite.config.ts index f45db1b..e2af180 100644 --- a/BillNote_frontend/vite.config.ts +++ b/BillNote_frontend/vite.config.ts @@ -1,11 +1,25 @@ import { defineConfig, loadEnv } from 'vite' import react from '@vitejs/plugin-react' +import fs from 'fs' import path from 'path' import { fileURLToPath } from 'url' import tailwindcss from '@tailwindcss/vite' const __dirname = path.dirname(fileURLToPath(import.meta.url)) +function readAppVersion() { + const fallbackVersion = '0.0.0' + + try { + const tauriConfigPath = path.resolve(__dirname, 'src-tauri/tauri.conf.json') + const tauriConfig = JSON.parse(fs.readFileSync(tauriConfigPath, 'utf-8')) as { version?: string } + return tauriConfig.version || fallbackVersion + } + catch { + return fallbackVersion + } +} + // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { // 在 Docker 环境中,父目录可能没有 .env 文件,使用当前目录 @@ -14,9 +28,13 @@ export default defineConfig(({ mode }) => { const apiBaseUrl = env.VITE_API_BASE_URL || 'http://127.0.0.1:8483' const port = parseInt(env.VITE_FRONTEND_PORT || '3015', 10) + const appVersion = env.VITE_APP_VERSION || process.env.VITE_APP_VERSION || readAppVersion() return { base: './', + define: { + __APP_VERSION__: JSON.stringify(appVersion), + }, plugins: [react(), tailwindcss()], resolve: { alias: { diff --git a/Dockerfile.complete b/Dockerfile.complete index 3102be4..94ebf0f 100644 --- a/Dockerfile.complete +++ b/Dockerfile.complete @@ -35,6 +35,10 @@ COPY ./backend /tmp/backend ARG BASE_REGISTRY=docker.io FROM ${BASE_REGISTRY}/library/node:20-alpine AS frontend-builder +# 可由发布 workflow 从 git tag 注入,用于前端 About 页展示版本;未传时由 Vite 回退读取 tauri.conf.json。 +ARG VITE_APP_VERSION= +ENV VITE_APP_VERSION=${VITE_APP_VERSION} + # pnpm 版本 pin 到 9 系列: # - lockfile (BillNote_frontend/pnpm-lock.yaml) 是 lockfileVersion '9.0',由 pnpm 9 生成 # - pnpm 11+ 要求 Node 22+,与 node:20 不兼容(ERR_UNKNOWN_BUILTIN_MODULE)