AwsLinker/scripts/build-static-fixed.bat

71 lines
1.9 KiB
Batchfile
Raw Permalink Normal View History

2025-09-16 17:19:58 +08:00
@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