Page:
Task-37-Sense-Windows前后端一键打包
Pages
Architecture-and-Code-Map
Audience-Document-Template
Business-Rules-and-Glossary
Common-Changes
Delivery-Documentation-Guide
Deployment-Template
Deployment-and-Operations
Development-Workflow
Existing-Project-Adoption-Guide
Home
Local-Development-and-Verification
Multi-Agent-Collaboration
New-Project-Documentation-Setup
Product-Requirements
Product-Roadmap
Project-Profile
Requirements-Migration-Matrix
Task-1-三项目并行建单与协同工单顺序
Task-101-Sense-GoAdmin-应用外壳
Task-104-Sense-30天登录有效期
Task-106-Sense-本机-Supervisor-实例
Task-12-Bell独立登录RBAC与认证审计
Task-17-Bell不可变Event与永久幂等收据
Task-18-Bell开发测试合成事件入口
Task-19-Bell规则匹配与Event-Alert链路
Task-20-Bell-Alert并发处置与审计时间线
Task-21-Sense独立GoAdmin产品骨架
Task-22-Sense独立登录RBAC与审计
Task-23-Sense设备台账与凭据边界
Task-24-ONVIF与RTSP视频接入验证
Task-25-MediaMTX进程与状态对账
Task-26-Sense单路实时监看
Task-27-Sense区域与方向警戒线版本配置
Task-28-三项目当前MVP交互原型
Task-3-GoAdmin默认模块精简与UI组件复用
Task-30-Sense原型对齐GoAdmin与Element-Plus
Task-31-Bell原型对齐GoAdmin与Element-Plus
Task-32-Sense网管与非技术人员原型
Task-33-Bell普通用户预警处理原型
Task-36-Bell-MVP文档与待验收归档
Task-37-Sense-Windows前后端一键打包
Task-40-Sense全模式密码最短6位
Task-42-Sense密码策略仅限制最短6位
Task-44-Sense管理员侧栏模块为空修复
Task-46-Sense-Windows包内配置加载
Task-48-支持ONVIF-Digest认证与安全Media地址归一化
Task-5-冻结Sense与Bell-GoAdmin技术基线
Task-50-ONVIF与RTSP分离凭据并持久化Profile
Task-51-接入成功后自动建立媒体路由并进入实时监看
Task-54-修复实时监看按需拉流循环等待
Task-56-修复设备编辑请求包含新建专用字段
Task-58-建立explore-main-dev分支治理并重置GoAdmin开发基线
Task-61-Sense冻结GoAdmin源码产品骨架
Task-64-Sense登录RBAC与审计
Task-65-Sense设备台账与凭据边界
Task-66-Sense视频接入与Profile
Task-67-Sense视频服务生命周期与状态对账
Task-68-Sense单路实时监看与播放状态反馈
Task-69-Sense多边形区域与方向警戒线配置
Task-70-Sense-Windows配置启动与打包交付
Task-9-Bell独立GoAdmin产品骨架
Task-90-Sense项目根目录Windows启动脚本
Task-92-Sense旧设备能力JSONB兼容迁移
Task-95-Sense旧媒体路由唯一约束兼容迁移
Task-97-Sense免验证码登录与管理员密码重置
Task-99-Sense登录页只读配置接口
Task-Archive-Template
Troubleshooting
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
37 Sense Windows前后端一键打包
- 类型:需求
- 所属 Epic:#7
- 所属 MVP / 版本:#8
- 状态:已完成
- 日期:2026-08-12
- Gitea 工单:#37
- Wiki 页面:Task-37-Sense-Windows前后端一键打包
- Wiki revision:见本地镜像头
背景与目标
客户需要在 Windows 上快速查看和交付 Sense。目标是用一个简单 BAT 从冻结工具链构建 Vue 前端和 Go 后端,组装不含秘密的 Windows amd64 运行目录及 ZIP,并提供临时预览和生产配置边界。
最终方案
Sense/scripts/package-windows.bat精确校验 Go 1.26.5、Node 22.22.1、pnpm 9.15.1,执行冻结安装、前端构建、CGO 关闭的 Windows amd64 后端编译、白名单文件组装和 ZIP 压缩。- 产物固定为被 Git 忽略的
Sense/dist/sense-windows-amd64/与Sense/dist/sense-windows-amd64.zip;路径保护确保重建只清理这两个目标。 - 包内包含后端 EXE、前端静态资源、空值示例配置、上游许可证、
start-sense.bat和README-WINDOWS.md。 start-sense.bat demo是明确的内存临时预览;无参数生产启动强制要求外部 PostgreSQL URL、身份签名密钥、引导令牌和凭据加密密钥。- Wiki 增加本地打包、交付边界与排错说明;全量镜像同步同时带入其他已完成工单的最新 Wiki revision。
修改文件
Sense/scripts/package-windows.bat:一键构建、组装与压缩。Sense/scripts/runtime/start-sense.bat:demo/生产双模式启动入口。Sense/scripts/runtime/README-WINDOWS.md:包内运行说明。Sense/config/sense.env.example:补齐身份、凭据、ONVIF 与 MediaMTX 空值示例。Sense/README.md:增加 Windows 打包入口。docs/04-local-development-and-verification.md、docs/06-troubleshooting.md、docs/delivery/README.md:Wiki-first 镜像。wiki-docs.json、docs/task/37-Sense-Windows前后端一键打包.md:任务归档登记和镜像。
验收结果
| 验收标准 | 结果 |
|---|---|
| 冻结工具链一键生成前后端 ZIP | 通过;连续执行两次均成功 |
| ZIP 含 EXE、UI、空值配置、许可证、启动脚本与说明 | 通过;共 14 个条目 |
| 包内不含秘密或生产数据 | 通过;敏感示例值为空且文本扫描未发现令牌、私钥或带密码 PostgreSQL URL |
| 包内后端加载 UI,健康检查与首页可访问 | 通过;/healthz 200,/ 200 且包含 Vue 挂载点 |
| 固定路径安全重复覆盖 | 通过 |
| Brain、Bell 离线可构建和验证 | 通过 |
测试
cmd /c Sense\scripts\package-windows.bat:连续两次通过;前端仅有既有 vendor bundle 体积建议警告。- ZIP:7,281,398 bytes;SHA-256
1BAEB17F1976DD925D8C01A245C951081FAE149E5151DA5523190F24E0B6AA6D。 - 包内后端:内存模式绑定
127.0.0.1:18082,绕过本机代理后/healthz与/均为 200。 python -m unittest discover -s tests -v:31 项通过。python dev_scripts/check_harness.py --strict:通过。python dev_scripts/sync_wiki_docs.py --check:通过。git diff --check:通过。- 未验证部分:未连接真实 PostgreSQL、MediaMTX 或摄像机;未用真实生产秘密运行生产模式;未由目标实施/运维人员完成解压和人工验收。
遗留问题
- 前端 vendor bundle 超过 Vue CLI 建议体积阈值,本工单不改变现有分包策略,不阻塞 Windows 打包。
相关提交
e80180ebuild: add Sense Windows package script (#37)efb48b4docs: document Sense Windows package workflow (#37)6d35fa7docs: create task 37 acceptance archive (#37)
用户验收
- 2026-08-14:用户明确确认当前未验收工单通过验收。
- 本次验收确认该工单在历史
explore快照中的交付与证据;不恢复旧自研基础框架为dev产品基线,后续迁移仍受 #58、#61、#62 约束。