Windows 部署 CodeRoadMap
sync-courses.ps1、package-prod.bat 解读。
35 分钟
Windows 部署 CodeRoadMap
在 Windows 开发机 上,常用 PowerShell 同步课程内容、打 platform 生产包,再上传到 Linux 服务器。本节解读 deploy\scripts\sync-courses.ps1 与 platform\bin\package-prod.bat。
学习目标
- 跑通
sync-courses.ps1导入与验证课程 - 理解
package-prod.bat构建流程 - 衔接 linux-deploy 服务器侧步骤
核心内容
前置条件
H:\work\java-nav\
├─ backend 运行在 :8080
├─ content\课程\ 含 outline + drafts
└─ node、npm 在 PATH 中
本地 API 健康:Invoke-RestMethod http://127.0.0.1:8080/actuator/health。
sync-courses.ps1 三步
cd H:\work\java-nav
# 完整同步
.\deploy\scripts\sync-courses.ps1
# 仅预览去重(不写库)
.\deploy\scripts\sync-courses.ps1 -DryRun
# 指定 API 与管理员
.\deploy\scripts\sync-courses.ps1 -ApiBase "http://127.0.0.1:8080" -AdminPassword "your-password"
三步:Import(import-all-courses.mjs)→ Remove duplicates(-DryRun 设 $env:DRY_RUN)→ Verify(/api/tracks 对照 $expected)。finally 清理环境变量。
package-prod.bat 两步
cd H:\work\java-nav\platform
bin\package-prod.bat
- 复制
deploy\env\prod\platform.env.example→.env.production.local(部署前改INTERNAL_API_TOKEN) npm run build→assemble-standalone.bat→ 产出release\
完成后上传 platform\release\ 到服务器,与 JAR 一并启动(Linux 侧见 linux-deploy)。
典型工作流
# 1. 编辑 content/课程/powershell-essentials/drafts/*.md
# 2. 同步到本地 API
.\deploy\scripts\sync-courses.ps1
# 3. 打前端包
cd platform; .\bin\package-prod.bat
# 4. scp release/ + backend.jar → 服务器(或 GHA 自动部署)
CI 自动化见 gha-deploy;容器见 docker-essentials。
练习
- 本地 backend 启动后,DryRun 跑一遍 sync-courses