From 4f17e8424762bd354204dc48decf9fd27bd016b2 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 24 Jun 2025 15:40:50 +0800 Subject: [PATCH 1/2] extract version from git tag --- client/.eslintrc.cjs | 4 ++++ client/src/Pages/Settings/SettingsAbout.jsx | 2 +- client/vite.config.js | 24 ++++++++++++++------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/client/.eslintrc.cjs b/client/.eslintrc.cjs index 7d6029d4b..86d523a6f 100644 --- a/client/.eslintrc.cjs +++ b/client/.eslintrc.cjs @@ -16,4 +16,8 @@ module.exports = { "react-refresh/only-export-components": ["warn", { allowConstantExport: true }], "react/no-unescaped-entities": "off", }, + globals: { + __APP_VERSION__: "readonly", + process: "readonly", + }, }; diff --git a/client/src/Pages/Settings/SettingsAbout.jsx b/client/src/Pages/Settings/SettingsAbout.jsx index 6acadd444..42647e706 100644 --- a/client/src/Pages/Settings/SettingsAbout.jsx +++ b/client/src/Pages/Settings/SettingsAbout.jsx @@ -21,7 +21,7 @@ const SettingsAbout = () => { - {t("common.appName")} {2.1} + {t("common.appName")} {__APP_VERSION__} {t("settingsDevelopedBy")} diff --git a/client/vite.config.js b/client/vite.config.js index dc84ce055..033704c00 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -1,12 +1,20 @@ -import { defineConfig } from "vite"; +import { defineConfig, loadEnv } from "vite"; import react from "@vitejs/plugin-react"; import svgr from "vite-plugin-svgr"; +import { execSync } from "child_process"; -// https://vitejs.dev/config/ -export default defineConfig({ - base: "/", - plugins: [svgr(), react()], - optimizeDeps: { - include: ["@mui/material/Tooltip", "@emotion/styled"], - }, +export default defineConfig(({ mode }) => { + const env = loadEnv(mode, process.cwd(), ""); + const version = + env.VITE_APP_VERSION || execSync("git describe --tags --abbrev=0").toString().trim(); + return { + base: "/", + plugins: [svgr(), react()], + optimizeDeps: { + include: ["@mui/material/Tooltip", "@emotion/styled"], + }, + define: { + __APP_VERSION__: JSON.stringify(version), + }, + }; }); From 8d6078e2c1363a12c466248dd5d3dfce8bf77839 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 24 Jun 2025 16:31:18 +0800 Subject: [PATCH 2/2] safely extract version --- client/vite.config.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/client/vite.config.js b/client/vite.config.js index 033704c00..96151c0b3 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -5,8 +5,15 @@ import { execSync } from "child_process"; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ""); - const version = - env.VITE_APP_VERSION || execSync("git describe --tags --abbrev=0").toString().trim(); + let version; + try { + version = + env.VITE_APP_VERSION || + execSync("git describe --tags --abbrev=0").toString().trim(); + } catch (error) { + version = "unknown"; + } + return { base: "/", plugins: [svgr(), react()],