优化 Admin Windows 启动脚本并增加热重载 #13

Closed
opened 2026-08-06 17:26:50 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:开发体验优化
  • 父级大工单:#1
  • 所属 MVP:#2
  • 模块:Admin
  • 状态:验收通过

背景

根目录 run_admin.bat 当前只执行 go run .,修改 Go 代码后必须手动停止并重新启动,不利于本地联调。

目标

为 Windows 下的 Admin 开发启动脚本增加热重载:保存 Go、HTML、CSS 或 JavaScript 文件后,自动重新构建并重启 Admin。

实现范围

  • 优化根目录 run_admin.bat,从脚本所在目录稳定进入 admin;
  • 使用 Air 作为开发期热重载工具;
  • 固定 Air 为 v1.61.7,该版本的 go.mod 声明 Go 1.23,与项目固定的 Go 1.23.0 兼容;
  • Air 不存在时由启动脚本执行固定版本安装;
  • 新增 admin/.air.toml,只监听需要触发重建的源码/静态文件,排除数据、测试数据和临时构建目录;
  • 忽略 Air 临时构建产物;
  • 更新 Admin 入门文档。

依赖说明

  • 工具:github.com/air-verse/air@v1.61.7
  • 许可证:GPL-3.0
  • 用途:仅本地开发期运行,不链接进 Admin 程序,不修改 admin/go.mod 与 admin/go.sum
  • 安装位置:Go 的 GOPATH/bin

不做什么

  • 不引入前端浏览器自动刷新代理;
  • 不修改 Admin 业务代码或接口;
  • 不升级 Go 版本;
  • 不提交编译产物;
  • 不改动 Client 文件。

验收标准

  • 双击或从终端运行 run_admin.bat 可以启动 Admin;
  • 首次缺少 Air 时能够安装固定版本并继续启动;
  • 修改 Admin Go 文件后自动重新构建和重启;
  • 构建失败时显示错误,修正保存后可继续重建;
  • admin/tmp 等临时产物不会进入 Git;
  • go test ./...、go build ./... 和 git diff --check 通过;
  • 使用说明已更新;
  • 完成后在 docs/task 归档并提交 Git。

回退策略

本任务只提交启动脚本、Air 配置、忽略规则和相关文档;需要回退时按本工单提交回退,不影响 Admin 业务代码和用户现有 Client 修改。

## 基本信息 - 类型:开发体验优化 - 父级大工单:#1 - 所属 MVP:#2 - 模块:Admin - 状态:验收通过 ## 背景 根目录 `run_admin.bat` 当前只执行 `go run .`,修改 Go 代码后必须手动停止并重新启动,不利于本地联调。 ## 目标 为 Windows 下的 Admin 开发启动脚本增加热重载:保存 Go、HTML、CSS 或 JavaScript 文件后,自动重新构建并重启 Admin。 ## 实现范围 - 优化根目录 `run_admin.bat`,从脚本所在目录稳定进入 `admin`; - 使用 Air 作为开发期热重载工具; - 固定 Air 为 `v1.61.7`,该版本的 `go.mod` 声明 Go 1.23,与项目固定的 Go 1.23.0 兼容; - Air 不存在时由启动脚本执行固定版本安装; - 新增 `admin/.air.toml`,只监听需要触发重建的源码/静态文件,排除数据、测试数据和临时构建目录; - 忽略 Air 临时构建产物; - 更新 Admin 入门文档。 ## 依赖说明 - 工具:`github.com/air-verse/air@v1.61.7` - 许可证:GPL-3.0 - 用途:仅本地开发期运行,不链接进 Admin 程序,不修改 `admin/go.mod` 与 `admin/go.sum` - 安装位置:Go 的 `GOPATH/bin` ## 不做什么 - 不引入前端浏览器自动刷新代理; - 不修改 Admin 业务代码或接口; - 不升级 Go 版本; - 不提交编译产物; - 不改动 Client 文件。 ## 验收标准 - [x] 双击或从终端运行 `run_admin.bat` 可以启动 Admin; - [x] 首次缺少 Air 时能够安装固定版本并继续启动; - [x] 修改 Admin Go 文件后自动重新构建和重启; - [x] 构建失败时显示错误,修正保存后可继续重建; - [x] `admin/tmp` 等临时产物不会进入 Git; - [x] `go test ./...`、`go build ./...` 和 `git diff --check` 通过; - [x] 使用说明已更新; - [x] 完成后在 `docs/task` 归档并提交 Git。 ## 回退策略 本任务只提交启动脚本、Air 配置、忽略规则和相关文档;需要回退时按本工单提交回退,不影响 Admin 业务代码和用户现有 Client 修改。
Author
Owner

实施完成,等待验收

已完成:

  • run_admin.bat 自动检查并安装 Air v1.61.7,然后从 admin/.air.toml 启动热重载;
  • 开发产物使用 admin/admin-dev.exe,避免把数据目录错误定位到临时目录,也不覆盖正式 admin.exe;
  • Go、HTML、CSS、JavaScript 变化触发重建;数据、测试数据、测试文件和临时目录排除;
  • 入门文档和 docs/task 归档已更新。

验证结果:

  • 实际运行 run_admin.bat 成功监听 127.0.0.1:8080;
  • 临时新增 Go 文件后,日志中的构建和运行次数均从 1 增加到 2;
  • 日志确认数据目录为 admin/data;
  • go vet ./...、go build ./...、go test ./...、git diff --check 全部通过;
  • 测试进程已停止,8080 已释放。

提交:

  • 7a6c647 实现热重载;
  • 446510b 归档任务文档。

工单保持打开,等待用户验收。

## 实施完成,等待验收 已完成: - `run_admin.bat` 自动检查并安装 Air v1.61.7,然后从 `admin/.air.toml` 启动热重载; - 开发产物使用 `admin/admin-dev.exe`,避免把数据目录错误定位到临时目录,也不覆盖正式 `admin.exe`; - Go、HTML、CSS、JavaScript 变化触发重建;数据、测试数据、测试文件和临时目录排除; - 入门文档和 `docs/task` 归档已更新。 验证结果: - 实际运行 `run_admin.bat` 成功监听 `127.0.0.1:8080`; - 临时新增 Go 文件后,日志中的构建和运行次数均从 1 增加到 2; - 日志确认数据目录为 `admin/data`; - `go vet ./...`、`go build ./...`、`go test ./...`、`git diff --check` 全部通过; - 测试进程已停止,8080 已释放。 提交: - `7a6c647` 实现热重载; - `446510b` 归档任务文档。 工单保持打开,等待用户验收。
ila closed this issue 2026-08-06 17:36:37 +08:00
Author
Owner

用户已确认验收通过。已将本地任务归档状态更新为“验收通过”,提交:42d6478;同时勾选 Epic #1 和 MVP #2 中的 #13,并关闭本工单。

用户已确认验收通过。已将本地任务归档状态更新为“验收通过”,提交:`42d6478`;同时勾选 Epic #1 和 MVP #2 中的 #13,并关闭本工单。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#13