@echo off setlocal enabledelayedexpansion echo 开始静态构建... echo 1. 清理之前的构建文件... if exist ".next" rmdir /s /q ".next" 2>nul if exist "out" rmdir /s /q "out" 2>nul echo 2. 备份并删除 API 目录... set "api_backed_up=false" if exist "app\api" ( robocopy "app\api" "..\temp-api-backup" /E >nul 2>&1 if exist "..\temp-api-backup" ( rmdir /s /q "app\api" >nul 2>&1 if not exist "app\api" ( set "api_backed_up=true" echo API 目录已备份到上级目录并删除 ) else ( echo 警告: 无法删除 API 目录,继续构建... ) ) else ( echo 警告: 无法备份 API 目录,继续构建... ) ) else ( echo API 目录不存在,跳过备份 ) echo 3. 构建静态文件... call npm run build:static set "build_result=!ERRORLEVEL!" echo 4. 复制404页面... if exist "public\404.html" ( copy "public\404.html" "out\404.html" >nul 2>&1 if exist "out\404.html" ( echo 404.html 已复制到 out 目录 ) else ( echo 警告: 无法复制 404.html ) ) else ( echo 警告: public\404.html 不存在 ) echo 5. 恢复 API 目录... if "!api_backed_up!" == "true" ( if exist "..\temp-api-backup" ( robocopy "..\temp-api-backup" "app\api" /E >nul 2>&1 rmdir /s /q "..\temp-api-backup" >nul 2>&1 if exist "app\api" ( echo API 目录已恢复 ) else ( echo 警告: 无法恢复 API 目录,请手动将上级目录的 temp-api-backup 复制为 app\api ) ) ) echo. if !build_result! == 0 ( echo ✅ 静态构建完成! echo 📁 静态文件位置: out/ 目录 echo 🚀 可以将 out/ 目录上传到服务器 echo. echo 预览命令: npm run preview ) else ( echo ❌ 构建失败! echo 错误代码: !build_result! ) echo. pause