Skip to content

机器队大战人工队 - 是科技改变世界还是老手艺人发扬光大 #40

Closed

Description

@Tanya7z
No description provided.

Activity

  1. changed the title [-]机器队大战人工队 - 是科技改变世界还是老手艺人发扬创新[/-] [+]机器队大战人工队 - 是科技改变世界还是老手艺人发扬光大[/+] on Jul 22, 2026
  2. Tanya7z commented on Aug 5, 2026

    @Tanya7z
    MemberAuthor

    @cursoragent 为什么刚刚的提交在ootb时失败了

  3. cursor commented on Aug 5, 2026

    @cursor
    Contributor

    根据 GitHub Actions 日志,最新提交 42964ba(「目录大整理」)的 OOTB 实际上是成功的,并非失败。

    OOTB 状态:已通过

    Run #31032995605 全部通过:

    • Build all workspaces
    • SDK testing sandbox(59 项测试)
    • mc-fake 生成物一致性检查
    • check-ootb:13/13 通过
    • smoke-modules:catalog / modules API 正常

    目录迁移后,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 Run 结果
    ootb #31032995605 成功
    Docs #31032994895 失败
    changeset-release #31032995155 失败

    两条失败 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 就找不到模块。

    结论

    • OOTB 没有失败;若看到 commit 旁有红叉,多半是 Docs 或 changeset-release 失败。
    • 若要修这两条 CI,需要在对应 workflow 里、npm ci 之后、npm run docs / build-publishable.mjs 之前,加上 npm run build --workspaces --if-present(与 OOTB 对齐)。

    需要的话我可以直接提 PR 修 Docs 和 changeset-release 的 build 步骤。

    Open in Web Open in Cursor 
  4. Tanya7z commented on Aug 5, 2026

    @Tanya7z
    MemberAuthor

    @cursoragent 好的 麻烦修复

  5. cursor commented on Aug 5, 2026

    @cursor
    Contributor

    已修复并提交 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 步骤:

    Workflow 文件
    Docs .github/workflows/docs.yml
    changeset-release .github/workflows/changeset-release.yml
    npm-publish .github/workflows/npm-publish.yml(同类隐患,一并修复)
    - name: Build all workspaces
      run: npm run build --workspaces --if-present

    合并 PR 后,Docs 与 changeset-release 的 CI 应能恢复正常。

    View PR

    Open in Web Open in Cursor 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions