Sentry的源图/工件不起作用

时间:2017-02-07 12:04:48

标签: webpack sentry

我正在使用webpack构建,缩小和生成应用程序的源图。使用webpack-sentry-plugin将工件发送到sentry.io。

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

Sentry的Releases / Artifacts包含以下文件:

js/app.js
js/app.js.map

无论如何,当Sentry记录错误时,stacktrace来自缩小的文件。它没有使用源图。

在我的设置中我做错了什么?或者我应该提供哪些其他信息以获得帮助?

2 个答案:

答案 0 :(得分:4)

我在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
    })
  ]
}

答案 1 :(得分:1)

在我们的情况下,它已经没有工作很长时间了。

一切似乎都很好。已上传工件,已标记版本,记录了错误,但没有源映射。

问题的底线:我们自己托管哨兵,而哨兵则分为不同的容器。他们没有正确共享数据。

一种解决方案是在容器之间共享数据(请参见that post),甚至将源地图上传到S3服务器,Sentry也可以使用它。