Sentry 的源地图/工件不起作用

gus*_*pch 5 sentry webpack

我正在使用 webpack 构建、缩小和生成我的应用程序的源映射。工件通过 webpack-sentry-plugin 发送到 sentry.io。

javascript 代码从localhost:8080/js/app.js. 它包含//# sourceMappingURL=app.js.map在最后。Sourcemaps 在 Chrome devtools 上正常工作。

Sentry 的发布/工件包含以下文件:

js/app.js
js/app.js.map
Run Code Online (Sandbox Code Playgroud)

无论如何,当 Sentry 记录错误时,堆栈跟踪来自缩小的文件。它没有使用源映射。

我的设置有什么问题?或者我应该提供哪些其他信息以获得帮助?

gus*_*pch 5

我在forum.sentry.io 上发布了这个问题,并从一个叫@benvinegar 的人那里得到了答案。

事情是这样的:在发送源映射/工件时,我们提供文件和文件名。如果源映射与缩小的 JS 文件一起上传到主机,则文件名是源映射所在的完整 URL。也就是说:如果我们缩小的 Javascript 位于www.example.com/js/app.js,那么源映射/工件文件名必须是www.example.com/js/app.js.map. 否则,~/js/app.js.map如果我们希望源映射应用于其他情况,例如在localhost:8080/js/app.js.

在我使用时webpack-sentry-plugin,只需将以下属性添加到插件中即可:

{
  plugins: [
    new SentryPlugin({
      filenameTransform: filename => '~/' + filename
    })
  ]
}
Run Code Online (Sandbox Code Playgroud)