kindergarten/start.ps1

41 lines
1.6 KiB
PowerShell
Raw Normal View History

# 幼儿阅读教学服务平台 - 一键启动并预览
# 用法:在项目根目录执行 .\start.ps1 或在资源管理器中双击(若已关联 PowerShell
$ErrorActionPreference = "Stop"
$Root = $PSScriptRoot
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host " 幼儿阅读教学服务平台 - 一键启动" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
# 启动后端(新窗口)
Write-Host "[1/3] 启动后端服务..." -ForegroundColor Blue
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$Root\reading-platform-backend'; npm run start:dev" -WindowStyle Normal
# 等待后端开始编译
Start-Sleep -Seconds 3
# 启动前端(新窗口)
Write-Host "[2/3] 启动前端服务..." -ForegroundColor Green
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$Root\reading-platform-frontend'; npm run dev" -WindowStyle Normal
# 等待前端就绪Vite 默认 5173
Write-Host "[3/3] 等待服务就绪并打开浏览器..." -ForegroundColor Gray
$url = "http://localhost:5173"
$maxWait = 45
$step = 2
$waited = 0
while ($waited -lt $maxWait) {
try {
$r = Invoke-WebRequest -Uri $url -UseBasicParsing -TimeoutSec 2 -ErrorAction SilentlyContinue
if ($r.StatusCode -eq 200) { break }
} catch {}
Start-Sleep -Seconds $step
$waited += $step
Write-Host " 等待中... ${waited}s" -ForegroundColor DarkGray
}
Start-Process $url
Write-Host "`n已打开浏览器: $url" -ForegroundColor Green
Write-Host "后端: http://localhost:3000 | 前端: http://localhost:5173`n" -ForegroundColor Cyan