Files
Brain/launch-brain-h5.ps1
MingNian b0fce840a3 首次提交:脑晴测 H5 项目
包含前端源码、预构建产物(dist/)、零依赖 Node.js 服务器(server.mjs)、
Cloudflare Worker 版本(worker/)、部署文档(DEPLOY.md)和交接文档。

技术总监可直接 clone 后运行 node server.mjs 启动,无需安装 React 或 build。
DEEPSEEK_API_KEY 通过环境变量注入,未纳入仓库。
2026-07-28 10:24:47 +08:00

63 lines
1.9 KiB
PowerShell

$ErrorActionPreference = "Stop"
$Project = Join-Path $PSScriptRoot "brain-h5"
$Launcher = Join-Path $Project "scripts\start-local.cmd"
$LocalUrl = "http://127.0.0.1:4173/"
$LanIp = ([System.Net.Dns]::GetHostAddresses([System.Net.Dns]::GetHostName()) |
Where-Object {
$_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork -and
$_.IPAddressToString -notlike "127.*" -and
$_.IPAddressToString -notlike "169.254.*"
} |
Select-Object -First 1).IPAddressToString
$PhoneUrl = if ($LanIp) { "http://$LanIp`:4173/" } else { "" }
if (-not (Test-Path -LiteralPath $Project)) {
throw "Project folder not found: $Project"
}
if (-not (Test-Path -LiteralPath $Launcher)) {
throw "Launcher not found: $Launcher"
}
Write-Host "Starting Brain H5..."
Write-Host "Project: $Project"
Write-Host "Computer url: $LocalUrl"
if ($PhoneUrl) {
Write-Host "Phone url on same Wi-Fi: $PhoneUrl"
}
$server = [System.Diagnostics.ProcessStartInfo]::new()
$server.FileName = "cmd.exe"
$server.Arguments = "/k `"$Launcher`""
$server.WorkingDirectory = $Project
$server.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Minimized
$server.UseShellExecute = $true
[System.Diagnostics.Process]::Start($server) | Out-Null
$deadline = (Get-Date).AddMinutes(6)
do {
try {
$response = Invoke-WebRequest -UseBasicParsing -Uri $LocalUrl -TimeoutSec 2
if ($response.StatusCode -eq 200) {
Write-Host "Brain H5 is ready. Opening browser..."
Write-Host "Computer url: $LocalUrl"
if ($PhoneUrl) {
Write-Host "Phone url on same Wi-Fi: $PhoneUrl"
}
Start-Process $LocalUrl
exit 0
}
} catch {
Start-Sleep -Seconds 1
}
} while ((Get-Date) -lt $deadline)
Write-Host ""
Write-Host "Startup timed out. Check the minimized server window for errors."
Write-Host "You can also open this URL after the server is ready: $LocalUrl"
if ($PhoneUrl) {
Write-Host "Phone url on same Wi-Fi: $PhoneUrl"
}
exit 1