Skip to content

v2.1.229+ 构建失败:官方 SEA 内嵌布局扁平化导致提取路径 ENOENT(当前卡在 2.1.224) #10

Description

@y-cruce

现象

官方 npm 已发布到 2.1.235,本仓库最新 Release 停在 v2.1.223(缺 2.1.224–2.1.229、2.1.231–2.1.235 共 11 个版本)。

对 2.1.224+ 跑 fetch-and-process.mjs 会在提取步骤报错:

Error: ENOENT: no such file or directory, open 'dist/2.1.235/.tmp/extract/darwin-arm64/src/entrypoints/cli.js'
    at verifyNodeCompat (scripts/verify-node-compat.mjs:85:16)

根因

从 v2.1.224 起,官方 Bun SEA 二进制的内嵌虚拟文件系统布局扁平化了:cli.js 不再位于 src/entrypoints/cli.js,而是直接在提取根目录(同级还有 audio-capture / computer-use / image-processor 等 .node 模块)。

scripts/fetch-and-process.mjs 中两处硬编码了旧路径(verifyNodeCompat 入参与 patchFile 入参)。

验证

在 fork 上做了最小修复(旧路径存在则用旧路径,否则回退到根目录 cli.js)后:

  • 2.1.235 全部 9 平台 CI 构建通过,P1/P3/P5/P6/P7/P8/P9 全部正常应用(P2 模式已消失,由 polyfill 兜底),AST 校验通过
  • darwin-arm64 本地安装冒烟通过:node cli.js --version2.1.235 (Claude Code),交互会话正常

另外顺手给二进制下载加了 curl --retry:CI 上遇到过一次 CDN 瞬时 SSL 错误(curl exit 35)导致整个多平台构建失败。

修复 PR 随后附上。

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