// vite.config.js
export default { build: { sourcemap: true } }
# webpack 里对应
devtool: 'hidden-source-map'

线上监控里的报错堆栈全指向 app.3f2a.js 第 1 行第 84213 列,看不出是哪个组件抛的。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:产物被压成一行,浏览器拿不到对应的 source map,堆栈只能给出压缩后的位置,源码信息全丢了。

「source map 定位」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。同一份配置存在多处的,先确认改的是被加载的那一份。

新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

处理上按这个顺序:构建时打开 sourcemap 产出映射文件;把 map 传到监控平台而不是放公网;用映射后的堆栈定位源码。

确认没问题再收工,同一条报错在监控里能显示源码文件名和行号。

作者 9823189