SourceMap上传后为什么线上错误还是看不到源码位置?

Mr-圆圆 阅读 14

我们项目用Webpack打包,本地调试时SourceMap能正常定位到源码,但部署到线上后,虽然我把.map文件也传上去了,Sentry里报错还是显示压缩后的代码位置,根本没法看。是不是我漏了什么配置?

我试过在webpack.config.js里设置devtool: 'source-map',也确认.map文件和js文件在同一目录下,路径也没问题。但Sentry就是解析不出来,这是为啥?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
UI辽源
UI辽源 Lv1
你这个问题很简单:Sentry 不会自动去读 .map 文件,你得告诉它。

两种解决办法:

一是直接在 Sentry 后台上传 .map 文件(推荐,一劳永逸),用他们的 sentry-cli 或者 webpack 插件。

二是在服务器配置响应头。比如 nginx 里对 JS 文件加上 SourceMap: /static/app.js.map,这样 Sentry 收到请求时才知道去哪个 map 文件找源码。

最偷懒的做法就是用 webpack 插件自动上传:

// webpack.config.js
const SentryWebpackPlugin = require('@sentry/webpack-plugin');

module.exports = {
// ...其他配置
plugins: [
new SentryWebpackPlugin({
org: '你的org',
project: '你的project',
authToken: '你的token',
release: process.env.RELEASE,
include: './dist',
ignore: ['node_modules', 'webpack.config.js']
})
]
};


跑一次构建就自动上传了,之后报错直接显示源码行号。
点赞 1
2026-03-12 08:01