综合练习
编写检查 8080/3000 端口的脚本。
40 分钟
综合练习
在 Windows 开发机上,用 PowerShell 完成 端口检查、健康探测、课程同步、构建验证 四类任务,串联本 track 与 linux-essentials、github-actions-essentials、docker-essentials。
学习目标
- 编写
Test-CodeRoadMapPorts.ps1检查 8080/3000 - 跑通 sync-courses 与 package-prod 并验证结果
- 形成 Windows 侧部署检查单
核心内容
任务一:端口与健康脚本
# Test-CodeRoadMapPorts.ps1
param([string]$ApiBase = "http://127.0.0.1:8080")
8080, 3000 | ForEach-Object {
$on = Get-NetTCPConnection -LocalPort $_ -State Listen -EA SilentlyContinue
[PSCustomObject]@{ Port = $_; Listen = [bool]$on }
} | Format-Table
try { Invoke-RestMethod "$ApiBase/actuator/health" | Out-Null; Write-Host "[OK] backend" }
catch { Write-Warning "backend down: $ApiBase" }
对应 Linux 排查链见 linux-practice。
任务二:课程同步
cd H:\work\java-nav
.\deploy\scripts\sync-courses.ps1 -DryRun
.\deploy\scripts\sync-courses.ps1
$tracks = Invoke-RestMethod http://127.0.0.1:8080/api/tracks
$tracks.slug -contains "powershell-essentials"
确认 $expected 列表无 missing warning。
任务三:platform 构建
cd H:\work\java-nav\platform
.\bin\package-prod.bat
Test-Path .\release\server.js
检查 .env.production.local 已从 deploy\env\prod\platform.env.example 复制。
502 排查:Windows 用 Get-NetTCPConnection + Invoke-RestMethod;服务器用 ss + curl(linux-practice)。CI 见 gha-workflow;容器见 docker-compose。
练习
- 完成并保存
Test-CodeRoadMapPorts.ps1 - 完整跑 sync-courses + package-prod,记录每步输出
- 写 5 条以内的「Windows 部署检查单」