openUBMC webui 仓库验证报告

生成时间: 2026-09-08T09:16:00 | 仓库: https://gitcode.com/openUBMC/webui.git | 报告文件: verification_report_WSL_webui_20260908.json

综合结果
部分通过
构建
成功
2m37s
测试
部分通过
210/211 通过
样例/冒烟测试
成功
静态检查
已配置
总耗时
13m0s

1 运行环境

宿主机

架构x86_64
CPUIntel(R) Xeon(R) Gold 6151 CPU @ 3.00GHz (32 核)
内存62Gi
磁盘197G (41G available)
DockerDocker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2

容器与镜像

操作系统Ubuntu 24.04.3 LTS
架构x86_64
CPU/内存32 核 / 62Gi (无限制)
镜像swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
选择理由README.md 系统要求章节和 .devcontainer/devcontainer.json 均明确指定该镜像为推荐开发环境

2 文档阅读理解

架构要求 来源: README.md - 系统要求章节
x86-64(amd64)
推荐镜像 来源: README.md - 系统要求章节 + .devcontainer/devcontainer.json
swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
构建依赖 来源: README.md + package.json + conanfile.py + manifest 构建指导书
Python >= 3.10(init.py 运行依赖) Node.js >= 18 LTS(前端开发依赖) bingo 构建工具(由 manifest init.py 安装) Conan 包管理器(由 manifest init.py 安装) npm >= 8 Conan 远程仓库认证(openubmc_opensource)
构建命令 来源: README.md - 组件级构建章节
cd /home/workspace/webui && bingo build --stage=dev
测试命令 来源: README.md - 测试章节 + package.json scripts
npm run lint && npx vue-tsc --noEmit && npx vitest run
样例命令 来源: README.md - 本地开发调试章节
npm run dev(启动开发服务器,默认 http://localhost:5173)
特殊依赖 来源: README.md - 环境依赖章节 + manifest 构建指导书
Conan 远程仓库 openubmc_opensource 需社区账号认证登录 bingo 和 Conan 禁止手动 pip install,须通过 manifest init.py 流程安装 镜像已预装 bingo、Conan 2.30、Node.js v20.18、交叉编译工具链

3 验证结果详情

构建结果 成功

耗时2m37s
构建命令bingo build --stage=dev
构建产物
名称路径大小
webui Conan 包opt/bmc/web/htdocs/4.4 MB(打包后)
dist 构建产物dist/14 MB(构建中间产物)

测试结果 部分通过

ESLint 代码检查失败 (34s)
ESLint 发现 284 个问题(256 错误 28 警告),主要涉及 max-lines-per-function、complexity、max-len、camelcase 规则
vue-tsc 类型检查失败 (33s)
tsconfig.json 使用了 TypeScript 5.5 已弃用的 suppressImplicitAnyIndexErrors 选项导致类型检查失败
vitest 单元测试部分通过 (17s)
通过 210 / 总计 211,失败 1
FAIL: tests/unit/utils/date.spec.ts :: Date.prototype.pattern Tests > should format hour correctly
expected '20' to be '20',received '12'(日期格式化小时数不匹配,可能为时区或 12/24 小时制问题)

样例/冒烟测试 成功

样例名称状态输出摘要耗时
构建产物冒烟测试成功index.html 内容正确,assets 目录含 333 个文件(261 个 gzip 压缩文件),打包后 4.4M,包路径 opt/bmc/web/htdocs/5秒

静态检查 已配置

pre-commit已配置 (8 hooks)
Hooks 列表
openUBMC/pre-commit-hooks: conventional-commit add-signoff-and-change-id check-sr check-json check-yaml prettier
pre-commit-hooks (mirror): trailing-whitespace end-of-file-fixer check-merge-conflict check-added-large-files check-case-conflict detect-private-key
local: normalize-package-lock
lint-runner未配置

DevContainer 已配置

配置目录.devcontainer
配置文件devcontainer.json
摘要已配置 devcontainer,基于 openubmc/ubuntu:24.04.2_26.06 镜像,工作目录 /workspace,包含 VS Code 扩展配置(cpptools、python、cmake 等)

4 执行日志

时间戳命令状态退出码耗时输出/错误
2026-09-08T09:03:00 读取 README.md 了解构建说明 成功 0 1m0s
README 明确仅支持 Ubuntu 24.04 LTS,推荐镜像 swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06,构建命令 bingo build --stage=dev,测试命令 npm run lint 和 npx vue-tsc --noEmit
2026-09-08T09:04:00 读取 conanfile.py 确认构建流程 成功 0 30s
conanfile.py build() 方法执行:生成 configure.ts 和 feature-routes.ts -> npm install -> npm run build(vite build + gzip + post-build);package() 方法执行 npm install --production 并打包 dist 到 opt/bmc/web/htdoc
2026-09-08T09:04:30 检查 .pre-commit-config.yaml 静态检查配置 成功 0 5s
已配置 pre-commit,共 3 个 repo、8 个 hooks(conventional-commit、add-signoff-and-change-id、check-sr、check-json、check-yaml、prettier、trailing-whitespace、end-of-file-fixer、check-merge-conflict、check-added-large-f
2026-09-08T09:04:35 搜索 lint-runner 配置文件 成功 0 1s
未找到 lint-runner 相关配置文件(.lint-runner.yaml / .lint-runner.json / lint-runner.config.* / .lintrunner.toml)
2026-09-08T09:04:36 检查 .devcontainer/ 目录 成功 0 1s
存在 .devcontainer/devcontainer.json,指定镜像 swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06,工作目录 /workspace,配置了 VS Code 扩展
2026-09-08T09:05:00 docker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06 成功 0 1s
Image is up to date(镜像已本地缓存,15.9GB)
2026-09-08T09:05:02 docker run -d --name ttfhw-webui-env -v <repo>:/webui-src:ro -w /home/workspace <image> tail -f /dev/null 成功 0 2s
容器启动成功,ID: 4e6f323352e9
2026-09-08T09:05:10 检查容器预装工具 成功 0 10s
git 2.43.0, python3 3.12.3, pip3 24.0, bingo 已安装, conan 2.30.0, node v20.18.0, npm 10.8.2, /opt/RTOS/208.11.0 存在, /opt/hcc_arm64le 交叉编译器存在, Conan profiles 已配置(default/profile.dt.ini/profile.luajit.ini
2026-09-08T09:05:30 conan remote login openubmc_opensource <user> -p '<password>' 成功 0 5s
Authenticated in remote 'openubmc_opensource' with user 'zh***eng',Conan 远程仓库认证成功
2026-09-08T09:06:00 cp -a /webui-src/. /home/workspace/webui/ (保留 .git,排除 build/node_modules/dist) 成功 0 10s
webui 源码复制到容器 /home/workspace/webui,git remote 为 https://gitcode.com/openUBMC/webui.git
2026-09-08T09:07:08 bingo build --stage=dev 成功 0 2m37s
Conan create webui/1.100.113@openubmc.dev/dev -> npm install(1034 packages in 2m)-> npm run build(vite build: 4414 modules transformed, built in 39.41s)-> gzip(426 files compressed)-> post
2026-09-08T09:10:00 npm install(在 /home/workspace/webui 安装完整依赖含 devDependencies,用于执行测试) 成功 0 1m39s
added 1032 packages in 2m(含 vitest、eslint、vue-tsc 等开发依赖)
2026-09-08T09:12:07 npx eslint "src/**/*.{js,ts,vue,jsx,tsx}" --fix 失败 1 34s
ESLint 检查完成,发现 284 个问题(256 errors, 28 warnings),主要错误类型:max-lines-per-function(函数行数超限)、complexity(圈复杂度超限)、max-len(行长度超限)、camelcase(命名规范)
284 problems (256 errors, 28 warnings),涉及文件包括 KvmH5/virtualKeyboard/index.vue、VideoPlayer.vue、VncH5.vue、header.service.ts、port-service.ts、utils.ts 等
2026-09-08T09:13:28 npx vue-tsc --noEmit 失败 2 33s
TypeScript 类型检查执行,32.3 秒完成
tsconfig.json(17,5): error TS5101: Option 'suppressImplicitAnyIndexErrors' is deprecated and will stop functioning in TypeScript 5.5. Specify compilerOption 'ignoreDeprecations: 5.0' to silence this error.
2026-09-08T09:14:11 npx vitest run 失败 1 17s
Test Files: 1 failed | 9 passed (10);Tests: 1 failed | 210 passed (211);Duration: 3.16s。失败用例: tests/unit/utils/date.spec.ts > Date.prototype.pattern Tests > should format hour correctly(expected
1 个测试失败:date.spec.ts 中 should format hour correctly 断言失败,期望 pattern('HH') 返回 '20',实际返回 '12'
2026-09-08T09:14:30 冒烟测试:验证构建产物 index.html 和 assets 成功 0 5s
构建产物验证通过:index.html 内容正确,assets 目录含 333 个文件(含 261 个 gzip 压缩文件),打包后总大小 4.4M,包路径 opt/bmc/web/htdocs/
2026-09-08T09:15:00 docker rm -f ttfhw-webui-env 成功 0 2s
容器已停止并删除

5 流程时间线

2026-09-08T09:03:00 — start
开始验证流程
结果: 已启动
2026-09-08T09:03:30 — document_reading
读取 README.md 了解构建说明和系统要求
结果: 成功 | file: README.md | sections_read: ["系统要求", "环境依赖", "构建", "测试", "本地开发调试"]
2026-09-08T09:04:00 — document_reading
读取 conanfile.py 确认 Conan 构建流程
结果: 成功 | file: conanfile.py | build_method: npm install + npm run build + package
2026-09-08T09:04:15 — document_reading
获取并阅读 manifest 构建指导书(环境初始化流程)
结果: 成功 | source: https://gitcode.com/openUBMC/manifest/blob/main/README.md | key_info: init.py 安装 bingo/Conan/Node.js,Conan 远程仓库认证
2026-09-08T09:04:30 — static_analysis_scan
检查仓库 pre-commit 配置
结果: 已配置 | config_file: .pre-commit-config.yaml | repos: 3 | hooks_count: 8
2026-09-08T09:04:35 — static_analysis_scan
检查仓库 lint-runner 配置
结果: 未配置 | searched_patterns: [".lint-runner.yaml", ".lint-runner.json", "lint-runner.config.*", ".lintrunner.toml&
2026-09-08T09:04:36 — devcontainer_scan
检查 .devcontainer 目录及配置
结果: 已配置 | config_dir: .devcontainer | files: ["devcontainer.json"] | image: swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
2026-09-08T09:05:00 — image_selection
选择基础镜像
结果: openubmc/ubuntu:24.04.2_26.06 | selection_reason: README.md 和 devcontainer.json 均明确指定该镜像为推荐开发环境
2026-09-08T09:05:02 — container_setup
拉取镜像并启动容器
结果: 成功 | image: swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06 | container_name: ttfhw-webui-env
2026-09-08T09:05:10 — dependency_installation
检查容器预装工具并配置 Conan 认证
结果: 成功 | preinstalled: ["git 2.43.0", "python3 3.12.3", "bingo", "conan 2.30.0", "node v20.18.0&qu | conan_login: openubmc_opensource 用户 zh***eng 认证成功
2026-09-08T09:06:00 — source_preparation
复制 webui 源码到容器 /home/workspace/webui
结果: 成功 | source: /webui-src(只读挂载) | destination: /home/workspace/webui | excluded: ["build", "node_modules", "dist"]
2026-09-08T09:07:08 — build_attempt
执行 bingo build --stage=dev 构建
结果: 成功 | conan_package: webui/1.100.113@openubmc.dev/dev | npm_packages: 1034 | vite_modules: 4414
2026-09-08T09:10:00 — test_preparation
在 webui 目录安装完整 npm 依赖(含开发依赖)
结果: 成功 | packages_installed: 1032
2026-09-08T09:12:07 — ut_execution
执行 ESLint 代码检查
结果: 失败 | errors: 256 | warnings: 28 | total_problems: 284
2026-09-08T09:13:28 — ut_execution
执行 vue-tsc TypeScript 类型检查
结果: 失败 | error: tsconfig.json 使用 TypeScript 5.5 已弃用的 suppressImplicitAnyIndexErrors 选项 | returncode: 2
2026-09-08T09:14:11 — ut_execution
执行 vitest 单元测试
结果: 部分通过 | total: 211 | passed: 210 | failed: 1
2026-09-08T09:14:30 — sample_execution
构建产物冒烟测试
结果: 成功 | artifacts_verified: index.html + 333 assets + 261 gzip files | package_size: 4.4M | package_path: opt/bmc/web/htdocs/
2026-09-08T09:15:00 — cleanup
停止并删除容器
结果: 成功
2026-09-08T09:15:30 — report_generation
生成验证报告
结果: 成功 | output_file: verification_report_WSL_webui_20260908.json

6 文档差距

1README 测试章节仅列出 npm run lint 和 npx vue-tsc --noEmit,未提及 vitest 单元测试命令(package.json 中配置了 test: vitest)
2README 未说明 tsconfig.json 中 suppressImplicitAnyIndexErrors 选项在 TypeScript 5.5 下已弃用的问题
3README 未列出 ESLint 规则配置中 max-lines-per-function=50 和 complexity=15 等严格规则,仓库现有代码存在较多违规

7 遇到的问题及解决方案

问题首次执行 bingo build 时 git remote -v 返回非零退出码 128,因复制源码时排除了 .git 目录
来源: bingo 通过 git remote -v 确定包来源地址
解决: 重新复制源码并保留 .git 目录,git checkout 恢复被删除的 build/ 跟踪文件后重新构建成功
问题npm run lint 因 shell glob 展开导致 'No files matching the pattern src/**/*.js' 报错
来源: package.json lint 脚本未对 glob 模式加引号
解决: 使用引号包裹 glob 模式 npx eslint "src/**/*.{js,ts,vue,jsx,tsx}" --fix 绕过 shell 展开
问题vue-tsc 类型检查失败,tsconfig.json 第 17 行使用了 TypeScript 5.5 已弃用的 suppressImplicitAnyIndexErrors 选项
来源: tsconfig.json compilerOptions.suppressImplicitAnyIndexErrors
解决: 需在 tsconfig.json 中添加 "ignoreDeprecations": "5.0" 配置项以消除弃用错误(本次验证未修改源码,记录为失败)
问题vitest 单元测试 date.spec.ts 中 should format hour correctly 失败,期望 pattern('HH') 返回 '20' 实际返回 '12'
来源: tests/unit/utils/date.spec.ts:38
解决: 日期格式化小时数不匹配,可能为 12/24 小时制或时区设置问题,需检查 Date.pattern 实现逻辑