@echo off setlocal enabledelayedexpansion echo ======================================================== echo ShuDao SafeAI 生产环境一键打包脚本 echo ======================================================== echo. :: 设置路径变量 set "ROOT_DIR=%CD%" set "FRONTEND_DIR=%ROOT_DIR%\shudao-vue-frontend" set "BACKEND_DIR=%ROOT_DIR%\shudao-go-backend" set "OUTPUT_DIR=%ROOT_DIR%\deploy_output" :: 1. 前端构建 echo [1/5] 正在构建前端项目 (Vue)... cd "%FRONTEND_DIR%" call npm run build if %errorlevel% neq 0 ( echo [ERROR] 前端构建失败!请检查错误信息。 pause exit /b %errorlevel% ) echo [SUCCESS] 前端构建完成。 echo. :: 2. 清理后端旧资源 echo [2/5] 清理后端旧资源... cd "%ROOT_DIR%" if exist "%BACKEND_DIR%\assets" ( rmdir /s /q "%BACKEND_DIR%\assets" ) if exist "%BACKEND_DIR%\views\index.html" ( del /q "%BACKEND_DIR%\views\index.html" ) echo [SUCCESS] 清理完成。 echo. :: 3. 复制新资源 echo [3/5] 整合前端资源到后端... :: 复制 assets 目录 if not exist "%BACKEND_DIR%\assets" mkdir "%BACKEND_DIR%\assets" xcopy /E /Y /I /Q "%FRONTEND_DIR%\dist\assets" "%BACKEND_DIR%\assets" :: 复制 index.html copy /Y "%FRONTEND_DIR%\dist\index.html" "%BACKEND_DIR%\views\index.html" >nul echo [SUCCESS] 资源整合完成。 echo. :: 4. 后端打包 (Linux amd64) echo [4/5] 正在打包后端 (Target: Linux/amd64)... cd "%BACKEND_DIR%" :: 使用 bee pack 打包,指定目标系统为 Linux call bee pack -be GOOS=linux -be GOARCH=amd64 if %errorlevel% neq 0 ( echo [ERROR] 后端打包失败!请确保已安装 bee 工具 (go install github.com/beego/bee/v2@latest)。 pause exit /b %errorlevel% ) echo [SUCCESS] 后端打包完成。 echo. :: 5. 解压验证 echo [5/5] 解压验证 (Output: deploy_output)... cd "%ROOT_DIR%" if exist "%OUTPUT_DIR%" ( rmdir /s /q "%OUTPUT_DIR%" ) mkdir "%OUTPUT_DIR%" :: 检查压缩包是否存在 if exist "%BACKEND_DIR%\shudao-go-backend.tar.gz" ( :: 使用 tar 命令解压 (Win10+ 自带) tar -xzf "%BACKEND_DIR%\shudao-go-backend.tar.gz" -C "%OUTPUT_DIR%" echo [SUCCESS] 已解压到: %OUTPUT_DIR% ) else ( echo [WARNING] 未找到压缩包,可能打包名称不匹配,请手动检查 shudao-go-backend 目录。 ) echo. echo ======================================================== echo 打包流程全部完成! echo ======================================================== echo. echo 部署包位置: %BACKEND_DIR%\shudao-go-backend.tar.gz echo 解压预览: %OUTPUT_DIR% echo. pause