From cccc4e4c8c2264b9adb24b841f55bc57cab55435 Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Mon, 16 Mar 2026 15:00:38 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(ui):=20display=20version=20and?= =?UTF-8?q?=20git=20hash=20in=20header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add version info display below "ERP Auto" logo showing format: ${version}(${git-hash}) - Inject __APP_VERSION__ and __GIT_HASH__ via vite define - Add TypeScript declarations for global constants - Simplify portable artifact name (remove version) Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 2 -- electron-builder.yml | 2 +- electron.vite.config.ts | 18 ++++++++++++++++++ src/renderer/src/App.tsx | 11 ++++++++--- src/renderer/src/env.d.ts | 3 +++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index fd7054e..87cb544 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,8 +10,6 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co npm run dev # Start development server with hot reload npm run build # Full build with type checking npm run build:win # Build Windows executable -npm run build:mac # Build macOS DMG -npm run build:linux # Build Linux AppImage ``` ### Code Quality diff --git a/electron-builder.yml b/electron-builder.yml index 98bc229..fc5ef83 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -27,7 +27,7 @@ win: - nsis - portable portable: - artifactName: ${name}-${version}-portable.${ext} + artifactName: ${name}-portable.${ext} # Portable app uses user data directory (AppData), not exe directory # This ensures config persists across app updates nsis: diff --git a/electron.vite.config.ts b/electron.vite.config.ts index 80304cd..b3dfb1e 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -2,11 +2,29 @@ import { resolve } from 'path' import { defineConfig } from 'electron-vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' +import { execSync } from 'child_process' + +// Get git hash (first 7 characters) +const getGitHash = (): string => { + try { + return execSync('git rev-parse --short=7 HEAD', { encoding: 'utf-8' }).trim() + } catch { + return 'unknown' + } +} + +// Get version from package.json +const version = require('./package.json').version +const gitHash = getGitHash() export default defineConfig({ main: {}, preload: {}, renderer: { + define: { + __APP_VERSION__: JSON.stringify(version), + __GIT_HASH__: JSON.stringify(gitHash) + }, resolve: { alias: { '@renderer': resolve('src/renderer/src') diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index b2beaf1..63bbeb6 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -332,12 +332,17 @@ function App(): React.JSX.Element {
setCurrentPage('home')} style={{ WebkitAppRegion: 'no-drag' } as any} > - - ERP Auto +
+ + ERP Auto +
+ + {__APP_VERSION__}({__GIT_HASH__}) +
diff --git a/src/renderer/src/env.d.ts b/src/renderer/src/env.d.ts index 11f02fe..1bd8bea 100644 --- a/src/renderer/src/env.d.ts +++ b/src/renderer/src/env.d.ts @@ -1 +1,4 @@ /// + +declare const __APP_VERSION__: string +declare const __GIT_HASH__: string