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

Vercel部署的Next.js项目中Sentry无法显示Source Map问题

Next.js + Vercel + Sentry:错误堆栈未解析为原始代码(Source Map匹配失败)

针对你遇到的问题,结合错误提示Uploaded artifacts do not include entry: ~/_next/static/chunks/pages/play-b473d401c0214fd2.js,可以从以下几个方向排查解决:

1. 路径前缀不匹配

Sentry找不到对应JS文件的核心原因之一是上传Source Map时指定的路径前缀和Vercel部署后实际文件的路径不一致。错误提示里的~/_next/...路径前缀可能和实际部署后的/_next/...(无波浪线)不匹配,导致Sentry无法关联错误堆栈中的文件路径。

解决:

  • 修改Sentry CLI上传命令的--url-prefix参数,对于Vercel部署的Next.js项目,正确前缀应为/_next/static,而非带~的格式。例如:
    sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps ./.next/static --url-prefix "/_next/static"
    

2. 未同步上传对应JS文件

你提到能看到Source Map,但错误提示明确指出缺少对应的JS文件——Sentry需要同时拿到混淆后的JS文件和对应的Source Map才能完成解析,只传Source Map是不行的。

解决:

  • 确认上传命令同时包含JS文件和Source Map文件,确保文件名的哈希值完全对应(比如play-b473d401c0214fd2.js和play-b473d401c0214fd2.js.map的哈希需一致)。示例命令:
    sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps ./.next/static/**/*.js ./.next/static/**/*.js.map --url-prefix "/_next/static"
    

3. Release版本号不统一

即使能看到Release记录,错误事件关联的Release可能和上传Source Map的Release不匹配,导致Sentry无法找到对应版本的映射文件。

解决:

  • 确保Vercel部署时的SENTRY_RELEASE环境变量和Sentry CLI上传时使用的版本号完全一致。Vercel集成会自动生成该变量,上传时直接引用即可,避免手动指定不一致的版本号。
  • 在Sentry错误详情页查看事件关联的Release,确认和你上传Source Map的Release是同一个。

4. Next.js构建配置异常

部分自定义构建配置可能破坏Source Map与JS文件的关联:

  • 检查next.config.js中是否开启了productionBrowserSourceMaps: true,确保生产环境生成合法的Source Map。
  • 若有自定义Webpack配置,不要修改devtool选项,保留Next.js默认的Source Map生成逻辑,避免格式不兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:47:23