You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CircleCI中sentry-cli无法找到dist文件夹上传Source Maps的问题

解决CircleCI中Sentry CLI找不到dist文件夹的问题

我来帮你搞定这个问题,这通常是构建步骤顺序不对或者工作目录配置出了问题,咱们一步步来排查解决:

1. 先确保生产构建步骤跑在Sentry命令之前

最常见的原因就是你还没生成dist文件夹,就先执行了Sentry的版本创建命令。调整CircleCI的步骤顺序,先完成依赖安装、生产构建,再处理Sentry相关操作:

jobs:
  build-and-release:
    docker:
      - image: cimg/node:20.10.0 # 选适配你项目的Node.js镜像就行
    steps:
      - checkout # 把代码拉到Docker容器里
      - run:
          name: 安装项目依赖
          command: npm ci # CI环境用ci比install更稳定,依赖版本更一致
      - run:
          name: 执行生产构建(生成dist文件夹)
          command: npm run build # 换成你项目实际的构建命令,比如yarn build
      - run:
          name: Install sentry-cli
          command: curl -sL https://sentry.io/get-cli/ | bash
      - run:
          name: Create new sentry release from latest tag
          command: sentry-cli releases -o my-org -p my-project new ${CIRCLE_TAG/v/}

2. 确认Docker容器的工作目录

CircleCI的Docker容器默认工作目录可能不是你的项目根目录,导致dist文件夹生成的位置和Sentry CLI预期的不一致。可以显式指定工作目录:

jobs:
  build-and-release:
    docker:
      - image: cimg/node:20.10.0
    working_directory: ~/your-project-repo-name # 替换成你的项目仓库名称
    steps:
      - checkout
      # 后续的install、build、Sentry步骤...

这样所有命令都会在指定目录下执行,dist文件夹也会生成在这里,Sentry CLI就能正常找到它了。

3. 加个调试步骤验证dist是否存在

如果还是有问题,可以在Sentry命令前加个验证步骤,确认dist文件夹是否真的生成了,方便定位问题:

- run:
    name: 验证dist文件夹是否存在
    command: |
      ls -la ~/your-project-repo-name/dist # 对应你指定的工作目录
      # 如果这个命令失败,说明构建步骤没生成dist,或者路径不对

4. 补充:上传Source Maps到Sentry(可选但推荐)

既然你的dist文件夹包含Source Map,创建版本后最好把它们上传到Sentry,这样错误追踪时才能看到源码。可以在创建版本后加这个步骤:

- run:
    name: 上传Source Maps到Sentry
    command: |
      sentry-cli releases -o my-org -p my-project files ${CIRCLE_TAG/v/} upload-sourcemaps ./dist \
        --url-prefix '~/static' # 根据你的项目实际资源部署路径调整这个值
        --validate # 验证上传的source map是否合法

内容的提问来源于stack exchange,提问作者user3476614

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:00:33