fix(web): 同步 package-lock.json ——修复 CI Staging Web 镜像构建失败 (npm ci EUSAGE) #2021
Reference in New Issue
Block a user
Delete Branch "fix/web-ci-package-lock"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
根因
PR#2020 合入后 CI Run #54590 Build Staging Web Image 失败,API/Worker 正常。
CI
infra/docker/web.Dockerfile在 builder 阶段执行的是npm ci(读取apps/web/package-lock.json),而 #2020 在apps/web/package.json中新增了classnames ^2.5.1/dayjs ^1.11.23显式依赖时,只用pnpm add更新了pnpm-lock.yaml,未同步 package-lock.json。lockfile 中 dayjs 仍停留在 antd 传递引入的
1.11.21,与^1.11.23不匹配:三次重试(含一次
--no-cache)均在 builder 5/7 步(npm ci)以 exit code 1 退出。修复
在 apps/web 目录执行
npm install,将package-lock.json同步:node_modules/dayjs: 1.11.21 → 1.11.23node_modules/classnames: 提升为顶级依赖(version 2.5.1,由 antd/icons 传递引入时版本一致,只是位置上移)验证
npm ci成功安装 444 包tsc --noEmit零错误vite build成功产出 dist/(TitleStylePanel/GeneratePage 等 chunk 正常)eslint src/components/title src/pages/generate/components/title零错误影响
仅改
apps/web/package-lock.json一个文件(+5/-3 行),不碰源码、CI、配置。修复后 Web 镜像构建应恢复正常,dev 环境 Watchtower 可继续滚动更新。PR#2020 在 apps/web/package.json 中新增了 classnames ^2.5.1 和 dayjs ^1.11.23 的显式依赖(此前它们是 antd/@ant-design/icons 的传递依赖),但仅用 pnpm add 更新了 pnpm-lock.yaml,未同步更新 CI(web.Dockerfile)实际使用的 package-lock.json。 lockfile 中 dayjs 仍停留在 1.11.21(由 antd 传递引入),npm ci 严格校验版本不匹配: npm error `npm ci` can only install packages when your package.json and package-lock.json ... are in sync. npm error Invalid: lock file's dayjs@1.11.21 does not satisfy dayjs@1.11.23 导致 CI Run #54590 Build Staging Web Image 连续三次(含一次 --no-cache)失败, 而 API/Worker 镜像构建不受影响。 修复:在 apps/web 下重新执行 npm install,将 package-lock.json 与 package.json 同步到 dayjs@1.11.23 / classnames@2.5.1 作为顶级依赖。本地已验证: - npm ci 成功安装 444 包 - tsc --noEmit 零错误 - vite build 成功产出 dist/ - eslint 通过CI全绿,自动审批通过。
CI全绿,自动审批通过。
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #2021 已关闭或合并,对应的预览环境已被清理。