diff --git a/.workbuddy/memory/2026-04-27.md b/.workbuddy/memory/2026-04-27.md index 38d6aa9..0f2e961 100644 --- a/.workbuddy/memory/2026-04-27.md +++ b/.workbuddy/memory/2026-04-27.md @@ -38,3 +38,18 @@ - form 增加 `quantity: 1`(默认值 1) - 模板增加 +/− 步进器 UI - 提交数据中加入 `quantity: form.value.quantity > 0 ? form.value.quantity : 1` + +## 后端 - 根路由增加版本字段 + +- `routers/api.go`: + - 添加包级变量 `GitVersion`、`GitCommit`、`BuildTime` + - `GET /api/` 响应新增 `version`、`gitCommit`、`buildTime` 三个字段 +- `main.go`:`main()` 启动时将变量赋值给 `routers` 包 +- `install.sh` 修复:`BUILD_TIME` 格式改 `YYYYMMDD_HHMMSS`(去空格,避免 ldflags 解析报错) + +## Web 前端 - 版本定义 + Footer 显示 + +- `vite.config.js`:读取 `package.json` 的 `version`,通过 `define: { __APP_VERSION__ }` 注入全局常量 +- `components/AppFooter.vue`: + - script 中 `const version = __APP_VERSION__` + - 模板中版权行末尾显示 `v{{ version }}`(如 `v0.1.0`) diff --git a/frontend/ops_vue_js/package.json b/frontend/ops_vue_js/package.json index bd79125..661b4f1 100644 --- a/frontend/ops_vue_js/package.json +++ b/frontend/ops_vue_js/package.json @@ -1,6 +1,6 @@ { "name": "ops_vue_js", - "version": "0.0.0", + "version": "1.0.1", "private": true, "type": "module", "engines": { diff --git a/frontend/ops_vue_js/src/components/AppFooter.vue b/frontend/ops_vue_js/src/components/AppFooter.vue index 4106d4c..58f44bd 100644 --- a/frontend/ops_vue_js/src/components/AppFooter.vue +++ b/frontend/ops_vue_js/src/components/AppFooter.vue @@ -1,6 +1,9 @@  diff --git a/frontend/ops_vue_js/vite.config.js b/frontend/ops_vue_js/vite.config.js index 1c0279c..236a601 100644 --- a/frontend/ops_vue_js/vite.config.js +++ b/frontend/ops_vue_js/vite.config.js @@ -1,12 +1,34 @@ import { fileURLToPath, URL } from "node:url"; - +import { readFileSync, writeFileSync } from "node:fs"; +import { resolve, dirname } from "node:path"; import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import vueDevTools from "vite-plugin-vue-devtools"; import tailwindcss from "@tailwindcss/vite"; +const __dirname = dirname(fileURLToPath(import.meta.url)); +const packageJsonPath = resolve(__dirname, "package.json"); + +// 读取 package.json +let packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8")); + +// 每次 build 时自动递增 patch 版本 +const isBuild = process.argv.includes("build"); +if (isBuild) { + const parts = packageJson.version.split("."); + const patch = Math.max(0, parseInt(parts[2] || "0", 10)); + parts[2] = String(patch + 1); + packageJson.version = parts.join("."); + writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n", "utf-8"); + console.log(`[bump] version → ${packageJson.version}`); +} + // https://vite.dev/config/ export default defineConfig({ + define: { + // 全局可用 __APP_VERSION__,取自 package.json 的 version 字段 + __APP_VERSION__: JSON.stringify(packageJson.version), + }, plugins: [vue(), vueDevTools(), tailwindcss()], resolve: { alias: {