# 生产一键部署脚本前端实施记录

## 修改内容
- 在 `bin/prod/deploy_from_package.sh` 中新增前端 `dist.zip` 唯一校验逻辑
- 新增旧版 `frontend/dist` 时间戳备份规则
- 新增新版 `frontend/dist.zip` 替换逻辑
- 新增前端静态资源解压到 `frontend/dist/` 的逻辑
- 新增 `resolve_frontend_source_dir`，支持从 `dist.zip` 解压结果中定位实际前端根目录

## 范围确认
- 本次前端交付物仅为部署脚本中的静态包部署链路
- 未修改 `ruoyi-ui` 下任何页面、接口、构建配置或打包脚本
- 如后续出现页面需求，需要回到新需求重新做设计和计划

## 实现说明
- 脚本会校验发布包中必须且只能存在 1 个 `dist.zip`
- 若 `frontend/dist` 已存在，则原地重命名为 `dist-<时间戳>`
- 新版前端压缩包统一替换到 `frontend/dist.zip`
- 新版前端资源统一解压到 `frontend/dist/`
- 解压结果支持以下结构：
  - 解压根目录直接为前端文件
  - 解压后为 `dist/index.html`
  - 其他情况下通过 `find index.html` 自动定位前端根目录

## 验证结果
- 已执行 `sh bin/prod/deploy_from_package_test.sh`
- 自测覆盖以下前端链路：
  - 旧版 `frontend/dist` 被重命名为时间戳备份目录
  - 新版 `frontend/dist.zip` 成功替换
  - 新版前端资源成功解压到 `frontend/dist/index.html`
  - 解压后的页面内容与发布包内容一致
- 已执行 `git status --short ruoyi-ui`
- 已确认 `ruoyi-ui` 本次没有新增或修改的源码文件被纳入改动范围
