【问题标题】:Sentry's sourcemaps/artifacts don't workSentry 的源地图/工件不起作用
【发布时间】:2017-06-24 16:09:27
【问题描述】:

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

javascript 代码从localhost:8080/js/app.js 运行。它最后包含//# sourceMappingURL=app.js.map。源图在 Chrome 开发工具中正常工作。

Sentry 的版本/工件包含以下文件:

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

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

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

【问题讨论】:

    标签: webpack sentry


    【解决方案1】:

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

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

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

    {
      plugins: [
        new SentryPlugin({
          filenameTransform: filename => '~/' + filename
        })
      ]
    }
    

    【讨论】:

    【解决方案2】:

    在我们的例子中,它已经很久没有工作了。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-06
      • 2023-03-10
      • 2017-05-30
      • 2018-08-10
      • 2021-07-19
      • 2016-01-26
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      相关资源
      最近更新 更多