feat:添加Web版本自动化部署系统

- 实现跨平台Web导出脚本(Windows/Linux/macOS)
- 添加本地测试服务器启动脚本
- 配置Godot Web导出预设
- 创建Web资源目录结构
- 支持一键导出和本地测试
This commit is contained in:
2025-12-25 23:06:29 +08:00
parent 405710bdde
commit 0935c5fd76
26 changed files with 2754 additions and 0 deletions

173
scripts/serve_web.bat Normal file
View File

@@ -0,0 +1,173 @@
@echo off
setlocal enabledelayedexpansion
echo ========================================
echo 鲸鱼镇 本地Web服务器 v1.0
echo ========================================
echo.
REM 配置变量
set "BUILD_DIR=build\web"
set "PORT=8000"
set "FALLBACK_PORT=8080"
REM 颜色代码
set "RED=[91m"
set "GREEN=[92m"
set "YELLOW=[93m"
set "BLUE=[94m"
set "RESET=[0m"
REM 检查导出文件
echo %BLUE%[检查]%RESET% 验证Web导出文件...
if not exist "%BUILD_DIR%\index.html" (
echo %RED%[错误]%RESET% 未找到Web导出文件
echo.
echo 请先运行以下命令导出项目:
echo scripts\build_web.bat
echo.
echo 或在Godot编辑器中导出Web版本到: %BUILD_DIR%\
echo.
pause
exit /b 1
)
REM 检查必要文件
echo %BLUE%[验证]%RESET% 检查必要文件...
set "REQUIRED_FILES=index.html index.js index.wasm index.pck"
set "MISSING_FILES="
for %%f in (%REQUIRED_FILES%) do (
if not exist "%BUILD_DIR%\%%f" (
set "MISSING_FILES=!MISSING_FILES! %%f"
)
)
if not "!MISSING_FILES!"=="" (
echo %RED%[错误]%RESET% 缺少必要文件:!MISSING_FILES!
echo 请重新导出项目
echo.
pause
exit /b 1
)
REM 检查Python
echo %BLUE%[检查]%RESET% 验证Python环境...
python --version >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo %RED%[错误]%RESET% 未找到Python
echo.
echo 请安装Python 3.x:
echo 下载地址: https://python.org/downloads
echo 或使用包管理器: winget install Python.Python.3
echo.
echo 安装后请重启命令提示符
echo.
pause
exit /b 1
)
REM 获取Python版本
for /f "tokens=2" %%i in ('python --version 2^>^&1') do set "PYTHON_VERSION=%%i"
echo %GREEN%[信息]%RESET% Python版本: %PYTHON_VERSION%
REM 显示文件信息
echo.
echo %GREEN%[信息]%RESET% Web文件统计:
set "TOTAL_SIZE=0"
for %%f in ("%BUILD_DIR%\*") do (
set "size=%%~zf"
set /a "TOTAL_SIZE+=size"
set /a "size_mb=size/1024/1024"
if !size_mb! gtr 0 (
echo %%~nxf: !size_mb! MB
) else (
set /a "size_kb=size/1024"
echo %%~nxf: !size_kb! KB
)
)
set /a "TOTAL_MB=TOTAL_SIZE/1024/1024"
echo 总大小: %TOTAL_MB% MB
REM 检查端口占用
echo.
echo %BLUE%[网络]%RESET% 检查端口占用...
netstat -an | find ":%PORT%" >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo %YELLOW%[警告]%RESET% 端口 %PORT% 已被占用,尝试使用 %FALLBACK_PORT%
set "PORT=%FALLBACK_PORT%"
netstat -an | find ":%PORT%" >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo %RED%[错误]%RESET% 端口 %PORT% 也被占用!
echo 请手动指定端口: python -m http.server [端口号]
echo.
pause
exit /b 1
)
)
REM 获取本机IP地址
for /f "tokens=2 delims=:" %%i in ('ipconfig ^| find "IPv4"') do (
set "LOCAL_IP=%%i"
set "LOCAL_IP=!LOCAL_IP: =!"
goto :ip_found
)
:ip_found
REM 显示启动信息
echo.
echo %GREEN%[启动]%RESET% 启动HTTP服务器...
echo 端口: %PORT%
echo 目录: %BUILD_DIR%
echo Python: %PYTHON_VERSION%
echo.
echo ========================================
echo %GREEN% 访问地址%RESET%
echo ========================================
echo 本地访问: http://localhost:%PORT%
echo 局域网访问: http://!LOCAL_IP!:%PORT%
echo.
echo %YELLOW%[控制]%RESET% 服务器控制:
echo 停止服务器: Ctrl+C
echo 重启服务器: 关闭后重新运行脚本
echo.
echo %BLUE%[调试]%RESET% 调试工具:
echo 开发者工具: F12
echo 控制台日志: 查看浏览器Console
echo 网络请求: 查看Network标签
echo.
echo ========================================
REM 尝试自动打开浏览器
echo %BLUE%[浏览器]%RESET% 尝试打开默认浏览器...
start http://localhost:%PORT% >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo %YELLOW%[提示]%RESET% 无法自动打开浏览器,请手动访问上述地址
)
echo.
echo %GREEN%[就绪]%RESET% 服务器启动中...
echo.
REM 切换到构建目录并启动服务器
cd "%BUILD_DIR%"
REM 创建简单的服务器日志
echo [%date% %time%] 服务器启动 - 端口:%PORT% >> server.log
REM 启动Python HTTP服务器
python -m http.server %PORT%
REM 服务器停止后的清理
echo.
echo %YELLOW%[停止]%RESET% 服务器已停止
echo [%date% %time%] 服务器停止 >> server.log
REM 返回原目录
cd ..\..
echo.
echo %GREEN%[完成]%RESET% 感谢使用鲸鱼镇Web服务器
echo.
pause