线上监控里 90% 的报错显示 chunk-3f2a.js:1:48213,看不到组件名和源码行。本地 dev 环境堆栈正常,构建产物里 .map 文件在 dist 目录下确实存在。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

npx sentry-cli releases new $VERSION
npx sentry-cli releases files $VERSION upload-sourcemaps ./dist --url-prefix '~/static/js'
npx sentry-cli releases finalize $VERSION

构建时 sourcemap 生成了但没上传到监控平台,平台只能按压缩后的行列号显示。产物里的 sourceMappingURL 注释被删掉,浏览器也不去拉 map。安全起见 map 没随静态资源发布,上传这一步就漏了。这一点先确认清楚,后面就不用反复试。

「sourcemap 未生效」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,确认构建产物的 sourcemap 是 hidden 还是外部 记下文件名;在发布流水线里加一步上传 map 并带上 release 版本号;平台侧把 release 和 dist 里的版本对齐;用一条测试异常验证能否还原到源码行。

改完照着核一遍,新产生的报错能显示 OrderList.vue 第 88 行,不再是 chunk 文件名。

作者 9823189