CodeSandbox CI出现ENOENT错误但GitHub Actions和本地环境运行正常
问题原因排查思路
你遇到的ENOENT报错核心是CodeSandbox CI在执行产物复制步骤时,找不到前序打包流程生成的tgz压缩包,可按以下顺序排查:
1 配置类问题排查
- 检查项目中CodeSandbox CI的相关配置,包括单独的配置文件或者
package.json中的codesandbox字段,确认配置的buildCommand是否会正确生成对应版本的tgz包。特别注意你当前是beta版本,如果版本号是通过环境变量、git tag动态生成的,需要确认CodeSandbox CI运行环境是否能正确读取到对应变量,避免生成的tgz文件名和CI预期复制的文件名不一致。 - 确认工作目录配置:CodeSandbox CI的默认工作目录和GitHub Actions可能存在差异,如果项目是monorepo结构,需要显式指定子包路径,避免打包产物生成在子包目录下,CI从根目录查找不到对应文件。
2 CodeSandbox CI自身问题排查
如果本地和GitHub Actions运行都正常,排除配置问题后,大概率是CodeSandbox CI本身的已知故障:
- CodeSandbox CI的临时目录清理机制偶发异常,会出现前序打包生成的产物被提前清理,导致后续复制步骤找不到文件,这类问题通常重新触发CI运行即可解决。
- 部分版本的CodeSandbox CI对npm 7+的
npm pack命令兼容性不足,会出现打包执行成功但产物未写入指定目录的问题,可尝试在CI配置中显式指定pack命令的输出路径,比如将打包命令调整为npm run build && npm pack --filename ./react-querybuilder-v4.0.0-beta2.tgz,和报错中提示的目标文件名对齐。
内容的提问来源于stack exchange,提问作者Jake Boone
相关产品推荐
相关产品推荐

