webui 仓库验证报告

仓库: https://gitcode.com/openUBMC/webui.git  |  报告日期: 2026-09-28  |  总耗时: 600 秒  |  敏感信息已脱敏
构建状态
成功
78 秒
静态检查
通过
pre-commit 10/10 通过
ESLint
失败
255 错误, 28 警告
TypeScript
失败
tsconfig 弃用选项
单元测试
210/211
1 个失败
DevContainer
已配置
Ubuntu 24.04 镜像

1. 元数据

字段值
仓库路径/opt/agent_build_hk_02/workspace/j_BTArybK2
仓库地址https://gitcode.com/openUBMC/webui.git
开始时间2026-09-28T05:58:00
结束时间2026-09-28T06:08:00
总耗时600 秒
总步骤数20

2. 机器规格与镜像

宿主机
项目值
架构x86_64
CPUIntel(R) Xeon(R) Gold 6151 @ 3.00GHz
核心数32
内存62Gi
磁盘197G (40G 可用)
Docker 版本29.1.3
容器与镜像
项目值
操作系统Ubuntu 24.04.3 LTS
架构x86_64
核心数32
内存62Gi (无限制)
镜像名称swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
选择理由README 和 devcontainer.json 均明确推荐使用该镜像,README 指出仅支持 Ubuntu 24.04 LTS

3. 文档阅读摘要

提取项来源值
架构要求 README.md - 系统要求章节 x86-64 (amd64)
推荐镜像 README.md + devcontainer.json swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
依赖列表 README.md - 系统要求 + 环境依赖 Ubuntu 24.04 LTS(仅支持此版本)
Python >= 3.10(init.py 运行依赖)
Node.js >= 18 LTS(前端开发依赖)
bingo(由 init.py 自动安装)
Conan(由 init.py 自动安装,需配置远程仓库认证)
npm 依赖(含本地 tgz 包)
构建命令 README.md - 构建章节 bingo build --stage=dev
测试命令 README.md - 测试章节 + package.json npm run lint & npx vue-tsc --noEmit & npx vitest run
样例命令 README.md - 本地开发调试 npm install && npm run dev(开发服务器 http://localhost:5173)
特殊依赖 README.md - 环境依赖 init.py(manifest 仓库,一键安装构建工具)
Conan 远程仓库认证(需用户名和密码)
package.json 中本地 tgz 文件引用

4. 静态检查能力

Pre-commit 全部通过 耗时 9s
项目值
配置文件.pre-commit-config.yaml
总 hooks 数13
通过10
失败0
跳过1 (check-sr: 无 .sr 文件)
commit-msg hooks2 (conventional-commit, add-signoff-and-change-id)

Hooks 详情

Hook来源结果
check-jsonopenUBMC/pre-commit-hooks@0.1.1Passed
check-yamlopenUBMC/pre-commit-hooks@0.1.1Passed
check-sropenUBMC/pre-commit-hooks@0.1.1Skipped (无文件)
prettieropenUBMC/pre-commit-hooks@0.1.1Passed
conventional-commitopenUBMC/pre-commit-hooks@0.1.1commit-msg hook
add-signoff-and-change-idopenUBMC/pre-commit-hooks@0.1.1commit-msg hook
trailing-whitespacepre-commit-hooks@v6.0.0Passed
end-of-file-fixerpre-commit-hooks@v6.0.0Passed
check-merge-conflictpre-commit-hooks@v6.0.0Passed
check-added-large-filespre-commit-hooks@v6.0.0Passed
check-case-conflictpre-commit-hooks@v6.0.0Passed
detect-private-keypre-commit-hooks@v6.0.0Passed
normalize-package-locklocalPassed
Lint-runner 未配置

搜索模式: .lint-runner.yaml, .lint-runner.json, lint-runner.config.*, .lintrunner.toml — 均未找到

5. DevContainer 配置

已配置
项目值
配置目录.devcontainer/
配置文件devcontainer.json
镜像swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06
workspace 挂载/workspace
转发端口8000, 8080
VS Code 扩展cpptools, cmake-tools, python, ruff, gitlens, yaml 等

6. 构建结果

bingo build --stage=dev 成功 78 秒
项目值
构建命令bingo build --stage=dev
Conan 包webui/1.100.121@openubmc.dev/dev
Conan 版本2.30.0
bingo 版本0.7.37
npm install1034 packages, 24s
Vite build4417 modules transformed, 38.15s
gzip 压缩426 files
生产依赖安装94 packages, 7s

构建产物

产物名称路径大小
index.htmlopt/bmc/web/htdocs/index.html1.4 KB
assets/opt/bmc/web/htdocs/assets/3.5 MB
style_config.jsonopt/bmc/web/htdocs/style_config.json3 B
permissions.inipermissions.ini文件权限配置
font/ + image/ + style/opt/bmc/web/htdocs/静态资源目录
总包大小4.4 MB
构建步骤: conan create (导出 recipe) → npm install → npm run build (vite build) → post-build (gzip) → npm install --production → package (打包到 htdocs)

7. 测试结果

ESLint 代码检查 (npm run lint) 失败 35 秒
项目值
命令npx eslint 'src/**/*.{js,ts,vue,jsx,tsx}' --fix
总问题数283
错误255
警告28

主要错误类型

错误类型说明
max-lines-per-function函数行数超过最大限制 (50行)
complexity函数复杂度超过最大限制 (15)
max-len行长度超过最大限制 (120字符)
camelcase标识符不符合驼峰命名规范
vue/require-valid-default-propVue 组件 prop 默认值类型不正确
vue/no-mutating-propsVue 组件中直接修改 prop 值
new-cap大写开头的函数名应仅用作构造函数
vue/no-duplicate-attributesVue 模板中存在重复属性
vue/no-v-html使用 v-html 可能导致 XSS 攻击
eqeqeq应使用 === 而非 ==
这些是仓库中已存在的代码质量问题,不影响构建(bingo build 成功)。主要涉及代码规范和 Vue 组件最佳实践。
TypeScript 类型检查 (npx vue-tsc --noEmit) 失败 33 秒
项目值
命令npx vue-tsc --noEmit
退出码2
错误TS5101: Option 'suppressImplicitAnyIndexErrors' is deprecated
错误位置tsconfig.json 第 17 行
原因: tsconfig.json 中使用了 suppressImplicitAnyIndexErrors 选项,该选项在 TypeScript 5.5 中已被弃用。
解决方案: 在 tsconfig.json 中添加 "ignoreDeprecations": "5.0" 或移除该选项。此问题不影响实际构建(bingo build 成功),仅影响独立的类型检查。
Vitest 单元测试 (npx vitest run) 部分通过 16 秒
项目值
命令npx vitest run
总测试数211
通过210
失败1
测试文件1 failed | 9 passed (10)
JUNIT 报告tests/reports/js_test.xml

失败用例详情

项目值
测试文件tests/unit/utils/date.spec.ts
测试名称Date.prototype.pattern Tests > should format hour correctly
期望值'20' (24小时制)
实际值'12' (12小时制)
原因Date.prototype.pattern 的 HH 格式实现与测试预期不一致,或时区/格式约定问题

通过的测试文件

测试文件测试数状态
crypto.spec.js15通过
date.spec.ts17 (1 failed)部分通过
regular.spec.ts53通过
common-service.spec.js15通过
composition.spec.js20通过
language.spec.ts5通过
watchSwitch.spec.ts4通过
utils.spec.ts70通过
kvm-init.spec.ts7通过
i18n-init.spec.ts5通过

8. 执行时间线

2026-09-28T05:58:00
开始验证流程
已启动
2026-09-28T05:58:10
读取 README.md 了解构建说明、系统要求、测试命令
成功
章节: 系统要求, 环境依赖, 构建, 测试, 本地开发调试
2026-09-28T05:58:15
读取 conanfile.py、package.json、vite.config.ts 确认构建配置
成功
构建工具: bingo (Conan 2 包装), conan 版本要求: >=1.60.0
2026-09-28T05:58:30
执行 pre-commit run --all-files
全部通过 (10 passed, 1 skipped)
耗时 9s, 13 hooks, 2 commit-msg hooks
2026-09-28T05:59:00
拉取镜像并启动容器
成功
镜像: openubmc/ubuntu:24.04.2_26.06, 容器名: ttfhw-webui-env
2026-09-28T05:59:10
验证容器内预装工具
成功
Python 3.12.3, Node v20.18.0, npm 10.8.2, Conan 2.30.0, bingo 0.7.37
2026-09-28T05:59:20
使用 Conan 凭证认证远程仓库
成功
remote: openubmc_opensource, user: <已脱敏>
2026-09-28T06:00:00
执行 bingo build --stage=dev 构建组件
成功
Conan 包: webui/1.100.121@openubmc.dev/dev, npm install 24s, vite build 38.15s, 4417 modules
2026-09-28T06:02:30
执行 ESLint 代码检查
失败 — 255 错误, 28 警告
耗时 35s, 主要错误: max-lines-per-function, complexity, max-len 等
2026-09-28T06:03:15
执行 vue-tsc --noEmit TypeScript 类型检查
失败 — tsconfig.json 弃用选项
耗时 33s, TS5101: suppressImplicitAnyIndexErrors deprecated
2026-09-28T06:04:00
执行 vitest run 单元测试
部分通过 — 210/211
耗时 16s, 1 失败: date.spec.ts > should format hour correctly
2026-09-28T06:07:00
停止并删除容器
成功
2026-09-28T06:08:00
生成验证报告
成功
输出文件: verification_report_WSL_webui_20260928.json / .html

9. 问题与解决方案

ESLint 代码检查发现 255 个错误和 28 个警告
时间: 2026-09-28T06:02:30  |  来源: npx eslint src/**/*.{js,ts,vue,jsx,tsx} --fix
解决方案: 这些是仓库中已存在的代码质量问题,不影响构建。主要涉及函数行数超限、复杂度超限、行长度超限等规范问题。需逐步重构代码以符合 ESLint 规则。
vue-tsc 类型检查失败:tsconfig.json 中 suppressImplicitAnyIndexErrors 选项已弃用
时间: 2026-09-28T06:03:15  |  来源: tsconfig.json 第17行
解决方案: 需在 tsconfig.json 中添加 "ignoreDeprecations": "5.0" 或移除 suppressImplicitAnyIndexErrors 选项。此为 TypeScript 5.5 兼容性问题,不影响实际构建。
vitest 单元测试中 date.spec.ts 的 should format hour correctly 测试失败
时间: 2026-09-28T06:04:00  |  来源: tests/unit/utils/date.spec.ts:38
解决方案: 测试期望 pattern('HH') 返回 '20'(24小时制),但实际返回 '12'(12小时制)。可能是 Date.prototype.pattern 实现中 HH 格式的处理逻辑与测试预期不一致,或时区设置问题。

10. 文档差距

README 未说明 tsconfig.json 中 suppressImplicitAnyIndexErrors 选项与 TypeScript 5.5 的兼容性问题
tsconfig.json 中使用了 TypeScript 5.5 已弃用的选项,文档中未提及此已知问题及解决方案
README 未列出 ESLint 检查的预期结果
仓库中存在 283 个 lint 问题但文档未说明是否为已知问题或是否需要在提交前修复
README 的测试章节仅列出 npm run lint 和 npx vue-tsc --noEmit
未提及 npx vitest run(单元测试),但 package.json 中有 test 脚本和 tests/unit/ 目录下的测试文件
README 未说明 date.spec.ts 中小时格式测试用例的预期行为
未说明 HH 格式应返回 24 小时制还是 12 小时制,导致测试用例与实现之间可能存在约定不一致

11. 执行日志

时间戳命令结果耗时退出码
05:58:30pre-commit run --all-files成功9s0
05:58:31find . -name '.lint-runner.*' ...成功1s0
05:58:32ls .devcontainer/成功1s0
05:59:00docker pull openubmc/ubuntu:24.04.2_26.06成功2s0
05:59:05docker run -d --name ttfhw-webui-env ...成功2s0
05:59:10检查容器内预装工具成功3s0
05:59:20conan remote login openubmc_opensource <user> -p <password>成功2s0
06:00:00bingo build --stage=dev成功78s0
06:02:00npm install成功17s0
06:02:30npx eslint 'src/**/*.{js,ts,vue,jsx,tsx}' --fix失败35s1
06:03:15npx vue-tsc --noEmit失败33s2
06:04:00npx vitest run部分失败16s1
06:07:00docker stop && docker rm ttfhw-webui-env成功2s0

12. 总结

验证项状态详情
静态检查 (pre-commit) 通过 10 hooks 通过, 1 跳过, 耗时 9s
lint-runner 未配置 未找到 lint-runner 配置
DevContainer 已配置 基于 openUBMC Ubuntu 24.04 镜像
构建 (bingo build) 成功 Conan 包 webui/1.100.121@openubmc.dev/dev, 78s, 产物 4.4MB
ESLint 检查 失败 255 错误 + 28 警告, 35s (仓库已有问题, 不影响构建)
TypeScript 类型检查 失败 tsconfig.json 弃用选项 TS5101, 33s (不影响构建)
单元测试 (vitest) 部分通过 210/211 通过, 1 失败 (date.spec.ts), 16s
样例 (开发服务器) 未执行 构建产物已成功生成, 未启动开发服务器
结论: webui 仓库可以在容器中成功构建。使用推荐镜像 swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06(Ubuntu 24.04 LTS), 镜像已预装 bingo 0.7.37、Conan 2.30.0、Node.js v20.18.0 等全部构建工具。bingo build --stage=dev 成功生成前端构建产物(4.4MB)。

测试方面:pre-commit 静态检查全部通过;ESLint 存在 255 个已有代码规范错误(不影响构建); vue-tsc 类型检查因 tsconfig.json 弃用选项失败(可通过添加 ignoreDeprecations 解决); vitest 单元测试 210/211 通过,1 个失败(date.spec.ts 小时格式问题)。