@cursoragent 为什么刚刚的提交在ootb时失败了
根据 GitHub Actions 日志,最新提交 42964ba(「目录大整理」)的 OOTB 实际上是成功的,并非失败。
42964ba
Run #31032995605 全部通过:
目录迁移后,OOTB workflow 里的路径已同步更新(例如 packages/db-server/dist/index.js、packages/tools/seed-configs.mjs),且 OOTB 在跑 tools 脚本前会先执行 npm run build --workspaces --if-present,因此 SDK 的 dist/ 存在,不会报错。
packages/db-server/dist/index.js
packages/tools/seed-configs.mjs
npm run build --workspaces --if-present
dist/
同一次 push 触发了 3 条 CI,其中 2 条红了:
两条失败 workflow 的错误相同:
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '.../node_modules/@sfmc-bds/sdk/dist/esm/node/config/index.js' imported from .../packages/tools/lib/paths.mjs
根因:tools/ 迁到 packages/tools/ 后,paths.mjs 在运行时 import 了 @sfmc-bds/sdk/node/config,需要 SDK 先 build 出 dist/。 Docs 和 changeset-release 只跑了 npm ci,没有像 OOTB 那样先 build workspaces,所以一执行 npm run docs -- build 或 node packages/tools/build-publishable.mjs 就找不到模块。
tools/
packages/tools/
paths.mjs
@sfmc-bds/sdk/node/config
npm ci
npm run docs -- build
node packages/tools/build-publishable.mjs
npm run docs
build-publishable.mjs
需要的话我可以直接提 PR 修 Docs 和 changeset-release 的 build 步骤。
@cursoragent 好的 麻烦修复
已修复并提交 PR:#95
packages/tools/lib/paths.mjs 运行时会 import @sfmc-bds/sdk/node/config,依赖 SDK 的 dist/。OOTB 在 npm ci 后会执行 npm run build --workspaces --if-present,所以能通过;Docs 和 changeset-release 只跑了 npm ci,随后调用 tools 脚本就会报 ERR_MODULE_NOT_FOUND。
packages/tools/lib/paths.mjs
ERR_MODULE_NOT_FOUND
在 npm ci 之后、调用 tools 脚本之前,增加与 ootb.yml 一致的 build 步骤:
ootb.yml
.github/workflows/docs.yml
.github/workflows/changeset-release.yml
.github/workflows/npm-publish.yml
- name: Build all workspaces run: npm run build --workspaces --if-present
合并 PR 后,Docs 与 changeset-release 的 CI 应能恢复正常。
Activity
[-]机器队大战人工队 - 是科技改变世界还是老手艺人发扬创新[/-][+]机器队大战人工队 - 是科技改变世界还是老手艺人发扬光大[/+]Tanya7z commentedon Aug 5, 2026
@cursoragent 为什么刚刚的提交在ootb时失败了
cursor commentedon Aug 5, 2026
根据 GitHub Actions 日志,最新提交
42964ba(「目录大整理」)的 OOTB 实际上是成功的,并非失败。OOTB 状态:已通过
Run #31032995605 全部通过:
目录迁移后,OOTB workflow 里的路径已同步更新(例如
packages/db-server/dist/index.js、packages/tools/seed-configs.mjs),且 OOTB 在跑 tools 脚本前会先执行npm run build --workspaces --if-present,因此 SDK 的dist/存在,不会报错。同一次 push 里真正失败的是另外两个 workflow
同一次 push 触发了 3 条 CI,其中 2 条红了:
两条失败 workflow 的错误相同:
根因:
tools/迁到packages/tools/后,paths.mjs在运行时 import 了@sfmc-bds/sdk/node/config,需要 SDK 先 build 出dist/。Docs 和 changeset-release 只跑了
npm ci,没有像 OOTB 那样先 build workspaces,所以一执行npm run docs -- build或node packages/tools/build-publishable.mjs就找不到模块。结论
npm ci之后、npm run docs/build-publishable.mjs之前,加上npm run build --workspaces --if-present(与 OOTB 对齐)。需要的话我可以直接提 PR 修 Docs 和 changeset-release 的 build 步骤。
Tanya7z commentedon Aug 5, 2026
@cursoragent 好的 麻烦修复
cursor commentedon Aug 5, 2026
已修复并提交 PR:#95
原因
packages/tools/lib/paths.mjs运行时会 import@sfmc-bds/sdk/node/config,依赖 SDK 的dist/。OOTB 在npm ci后会执行npm run build --workspaces --if-present,所以能通过;Docs 和 changeset-release 只跑了npm ci,随后调用 tools 脚本就会报ERR_MODULE_NOT_FOUND。修改
在
npm ci之后、调用 tools 脚本之前,增加与ootb.yml一致的 build 步骤:.github/workflows/docs.yml.github/workflows/changeset-release.yml.github/workflows/npm-publish.yml(同类隐患,一并修复)合并 PR 后,Docs 与 changeset-release 的 CI 应能恢复正常。