来源: README.md - 系统要求章节
x86-64 (amd64),README 明确声明仅支持此架构
来源: README.md - 系统要求章节 + .devcontainer/devcontainer.json
swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06(README 与 devcontainer.json 均指定)
来源: README.md - 构建/组件级构建章节 + manifest README 第3.3节
cd /home/workspace/webui && bingo build --stage=dev (conanfile.py build 方法内部执行 generate_configure_file + npm install + npm run build)
来源: README.md - 测试章节 + package.json scripts
npm run lint (eslint --fix);npx vue-tsc --noEmit;npx vitest run (package.json test 脚本)
来源: README.md - 本地开发调试章节 + 构建产物验证
构建产物为前端静态包(Conan package webui/1.100.116@openubmc.dev/dev),部署到 BMC Web 服务器 /opt/bmc/web/htdocs/,通过 HTTP 服务 index.html 做冒烟测试;无独立可执行样例
来源: README.md + manifest 仓库 README.md(openUBMC 构建指导书) + conanfile.py
来源: manifest README 第1.3节网络访问要求 + 第2.6节
| 时间 | 命令 | 状态 | 耗时(s) | 输出摘要 | 错误/备注 |
|---|---|---|---|---|---|
| 2026-09-14T06:01:00 | pre-commit run --all-files (宿主机本地执行) | 成功 rc=0 | 7 | Check .sr Files...Skipped; Check JSON...Passed; Check YAML...Passed; prettier...Passed; trim trailing whitespace...Passed; fix end of files...Passed; check for merge conflicts...Passed; check for added large files...Passed; check for case conflicts...Passed; detect private key...Passed; normalize-package-lock...Passed | — |
| 2026-09-14T06:01:30 | 检查 lint-runner 配置: find . -name '.lint-runner.*' -o -name 'lint-runner.config.*' -o -name '.lintrunner.*' | 成功 rc=0 | 1 | 未找到 lint-runner 配置文件 | — |
| 2026-09-14T06:02:00 | ls .devcontainer/ | 成功 rc=0 | 1 | devcontainer.json (已配置,image=swr...ubuntu:24.04.2_26.06,forwardPorts 8000/8080,含 VSCode 扩展配置) | — |
| 2026-09-14T06:03:00 | docker pull swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06 | 成功 rc=0 | 5 | Digest: sha256:fb8475c8c5a1ab9e4ae27348954fcb8d9e14bd52df96f5b2f4a3f19eaf8a6303;Status: Image is up to date | — |
| 2026-09-14T06:03:30 | docker run -d --name ttfhw-webui-env -w /home/workspace swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06 tail -f /dev/null | 成功 rc=0 | 3 | Container ID: cdd9057157d9;容器 Ubuntu 24.04.3 LTS x86_64 32核 62Gi | — |
| 2026-09-14T06:04:00 | apt-get update && apt-get install -y python3 python3-pip sudo make locales wget curl git libcurl4t64 libcurl4-openssl-dev pkg-config gnupg software-properties-common apt-transport-https ca-certificates lsb-release unzip | 成功 rc=0 | 60 | 基础工具安装完成(dbus/packagekit 提示为容器内无系统总线,属正常现象) | — |
| 2026-09-14T06:05:00 | git clone --depth 1 https://gitcode.com/openUBMC/manifest.git /home/workspace/manifest | 成功 rc=0 | 15 | manifest 仓库克隆完成 | — |
| 2026-09-14T06:06:00 | cd /home/workspace/manifest && export OPENUBMC_LICENSE=true && echo 'Y' | python3 init.py -user ****** -psw '<已脱敏>' | 成功 rc=0 | 300 | [INFO] 系统: ubuntu(legacy-full); board: openUBMC; installed: bootstrap(bingo apt deb 源+deb 包+pip 升级)、pre-commit 工具(node/stylua/luacheck)、bmc_sdk(board=openUBMC)、QEMU 环境; skipped: BMC Studio; [INFO] openUBMC开发者环境初始化完成! | — |
| 2026-09-14T06:11:00 | bingo --version; conan --version; node --version; npm --version; conan remote list; ls /opt/RTOS/ | 成功 rc=0 | 10 | bingo 0.8.23; conan 2.30.0; node v20.18.0; npm 10.8.2; remote: openubmc_opensource https://conan.openubmc.cn; /opt/RTOS/208.11.0 存在; conan2 profiles: default/profile.ini/profile.dt.ini/profile.luajit.ini | — |
| 2026-09-14T06:11:30 | conan search --remote openubmc_opensource '*' | 成功 rc=0 | 8 | Connecting to remote 'openubmc_opensource' with user '******'; Found 4180 pkg/version recipes | — |
| 2026-09-14T06:12:00 | cd /home/workspace/webui && bingo build --stage=dev | 成功 rc=0 | 79 | npm install: added 1034 packages in 23s; npm run build: vite built in 38.57s; gzipper 压缩 426 文件; package(): npm install --production added 94 packages in 6s; webui/1.100.116@openubmc.dev/dev 包构建成功; Full package reference: webui/1.100.116@openubmc.dev/dev#9c54fb93...:867734ce...#940d5672... | real 1m19.469s;产物包文件夹 /root/.conan2/p/b/webui2959eac721962/p/opt/bmc/web/htdocs/ (4.4M) |
| 2026-09-14T06:14:00 | cd /home/workspace/webui && npm install (恢复 devDependencies 以便执行测试) | 成功 rc=0 | 17 | added 1032 packages in 17s | bingo package() 步骤执行了 rm -rf node_modules + npm install --production,测试前需恢复全部依赖 |
| 2026-09-14T06:15:00 | npm run lint (eslint src/**/*.{js,ts,vue,jsx,tsx} --fix) — 首次执行(默认 /bin/sh=bash) | 失败 rc=2 | 1 | ESLint: No files matching the pattern "src/**/*.js" were found | 容器 /bin/sh 软链接到 bash(非 dash),bash 对 src/**/*.{js,ts,vue,jsx,tsx} 做花括号展开,拆成 5 个模式分别传给 eslint,其中 src/**/*.js 无匹配文件触发 ESLint 报错 | 环境不兼容:标准 Ubuntu /bin/sh 为 dash(不做花括号展开),此镜像为 bash |
| 2026-09-14T06:15:30 | npm config set script-shell /bin/dash && npm run lint (修正 script-shell 后重试) | 失败 rc=1 | 34 | ✖ 284 problems (256 errors, 28 warnings);主要规则: max-lines-per-function(函数行数超 50)、complexity(圈复杂度超 15)、camelcase、max-statements 等;--fix 已自动修复可修复项(142 个文件被格式化) | 源码存在 256 个不可自动修复的 ESLint 规则违例(函数过长/复杂度超标/命名风格) |
| 2026-09-14T06:16:00 | npx vue-tsc --noEmit | 失败 rc=2 | 32 | 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. | tsconfig.json 启用了已弃用选项 suppressImplicitAnyIndexErrors,仓库自带 TypeScript 5.5.2 将其视为错误(TS5101),导致类型检查无法进行 | 属仓库配置问题(tsconfig 与自带 TS 版本不兼容),未修改源码 |
| 2026-09-14T06:16:40 | npx vitest run | 失败 rc=1 | 16 | Test Files 1 failed | 9 passed (10); Tests 1 failed | 210 passed (211); Duration 3.16s; JUNIT 报告写入 tests/reports/js_test.xml | 失败用例: tests/unit/utils/date.spec.ts > Date.prototype.pattern Tests > should format hour correctly — expect(date.pattern('HH')).toBe('20') 实际得到 '12'(期望 20 得到 12,小时格式化断言不符) | 210/211 用例通过;唯一失败为 date 小时格式化断言,疑与测试用例构造的日期对象小时值有关 |
| 2026-09-14T06:18:00 | 冒烟测试: 在产物包 htdocs 目录启动 python3 -m http.server 并 curl index.html 及资源 | 成功 rc=0 | 5 | index.html: HTTP 200, 1457 bytes, <title version="3.0"> 存在; assets 目录含 261 个 .gz 预压缩资源文件(BMC Web 服务器以 gzip 方式提供); index.html 以 /UI/Static/ 为 base 引用 assets,符合 BMC 部署约定 | 构建产物为前端静态包,部署于 /opt/bmc/web/htdocs/,无独立可执行样例;冒烟测试验证产物可被 HTTP 服务正常返回 |
检测到 pre-commit 配置(13 个 hooks,文件类 11 个全部通过、1 跳过;commit-msg 类 2 个未在 --all-files 模式运行),未检测到 lint-runner 配置
pre-commit: 通过 | 10/13 通过, 1 跳过, 0 失败
lint-runner: 未配置
已配置 devcontainer,基于 swr.cn-north-4.myhuaweicloud.com/openubmc/ubuntu:24.04.2_26.06 镜像,工作目录 /workspace,转发端口 8000/8080,含 C++/Python/Vue 相关 VSCode 扩展配置
耗时 79s
产物:
总耗时 82s
ESLint: 失败 — 284 问题(256错误/28警告)
vue-tsc: 失败 — 1 错误
vitest: 失败 — 210/211 用例通过, 1 失败
失败: tests/unit/utils/date.spec.ts > Date.prototype.pattern Tests > should format hour correctly
expected '12' to be '20' (date.pattern('HH') 小时格式化断言不符)
耗时 5s
构建产物 HTTP 冒烟测试(index.html) — 成功
产物包 htdocs 经 python3 -m http.server 服务,index.html 返回 HTTP 200(1457B),<title version=3.0> 存在;assets 含 261 个 .gz 预压缩资源;index.html 以 /UI/Static/ 为 base 引用资源,符合 BMC Web 部署约定
| 时间 | 问题 | 解决方案 | 来源 |
|---|---|---|---|
| 2026-09-14T06:12:00 | 首次 bingo build 因源码缺少 .git 目录,bingo 执行 git remote -v 失败(exit 128),构建中断 | 重新拷贝源码时保留 .git 目录(仅排除 node_modules/dist),git remote -v 正常,构建成功 | bingo build 依赖 git remote 信息识别仓库 |
| 2026-09-14T06:15:00 | npm run lint 报 'No files matching the pattern src/**/*.js were found',ESLint 退出码 2 | 定位为容器 /bin/sh 软链接到 bash(非标准 dash)导致花括号展开;执行 npm config set script-shell /bin/dash 恢复标准 Ubuntu 行为后重试,lint 正常执行(报 284 个源码规则违例) | package.json lint 脚本: eslint src/**/*.{js,ts,vue,jsx,tsx} --fix (未加引号) |
| 2026-09-14T06:16:00 | npx vue-tsc --noEmit 报 TS5101: Option 'suppressImplicitAnyIndexErrors' is deprecated | 属仓库 tsconfig.json 与自带 TypeScript 5.5.2 配置不兼容问题,按约束不修改源码,记录为类型检查失败 | tsconfig.json 第 17 行 suppressImplicitAnyIndexErrors 选项 |
| 2026-09-14T06:16:40 | vitest 单元测试 1 个用例失败: date.spec.ts should format hour correctly,expect(date.pattern('HH')).toBe('20') 实际 '12' | 属测试用例断言与实现不符(小时格式化返回 12 而非期望 20),按约束不修改源码,记录为 1/211 用例失败 | tests/unit/utils/date.spec.ts:38 |