【问题标题】:Sentry: Upload sourcemaps from folder treeSentry:从文件夹树上传源地图
【发布时间】:2020-07-06 09:46:29
【问题描述】:

我正在使用 NextJs/ReactJs(带有 Typescript)应用程序,我正在尝试将源地图上传到 Sentry 人工制品。

此应用的构建不会捆绑到单个文件中。 相反,dist/output 文件夹反映了 NextJs 页面结构,在这种情况下,它具有类似于以下的树结构:

.next
|__ static
   |__ buildId
      |__ app.js
      |__ _app.js.map
      |__ index.js
      |__ index.js.map
      |__ customer
         |__ [customerId]
            |__ details.js
            |__ details.js.map
            |__ sub folder 1
            |__  sub folder 2

所有 .js 文件都引用一个 .map 文件。比如/.next/static/buildId/index.js,最后一行是//# sourceMappingURL=index.js.map

然后,我使用以下命令将源地图上传到 Sentry:

docker exec -it wtr-admin_app_container yarn sentry-cli 
  --auth-token=${SENTRY_AUTH_TOKEN} releases
  --org=${SENTRY_ORGANIZATION}
  --project=${SENTRY_PROJECT} files ${VERSION} upload-sourcemaps "./src/.next/static/" 
  --url-prefix "~/_next/static/" 
  --no-rewrite

问题在于--url-prefix,对于/.next/static/buildId/index.js 文件应该是~/_next/static/buildId/,但对于/.next/static/buildId/customer/[customerId]/details.js 文件应该是~/_next/static/buildId/customer/[customerId]/

因此,上传相同 url-prefix 下的所有文件将无法正常工作。


有没有办法上传这个树形结构,让 .js 文件与其 .map 文件正确关联?

RewriteFrames 是否适合此用例?


【问题讨论】:

    标签: javascript typescript next.js sentry


    【解决方案1】:

    我想出了一个解决方法,让我能够解决这个问题,并能够将我的缩小 .js 文件的整个树以及相关的源映射文件上传到 Sentry。

    解决方案:

    我决定遍历我想要上传的所有文件,并逐个上传它们(.js 和 .map 文件)并设置它们各自的“--url-prefix”。

    所以,对于每一对 .js 和 .map 文件,我都做了类似的事情:

    sentry-cli --auth-token=${SENTRY_AUTH_TOKEN} releases --org=${SENTRY_ORGANIZATION} --project=${SENTRY_PROJECT} files ${RELEASE_ID} upload-sourcemaps /folder_1/folder_2/file.min.js /folder_1/folder_2/file.min.js.map --url-prefix '~/folder_1/folder_2'
    

    结果:

    上传它们后,我在我的应用程序上生成了一个错误,并在 Sentry 上检查了该问题的详细信息。 然后我能够看到错误的整个堆栈跟踪,并且可以看到原始/未缩小的代码。

    旁注:

    我在一个 shell 脚本文件中执行了此操作(遍历文件并上传它们)。

    【讨论】:

    • 可以分享一下tsconfig和next.config.js吗?我已经被这个问题困扰了很长一段时间了,如果没有Enable JavaScript source fetching,我根本无法让哨兵与 nextjs 一起工作
    猜你喜欢
    • 1970-01-01
    • 2018-08-10
    • 2021-07-19
    • 1970-01-01
    • 2017-06-24
    • 2017-07-08
    • 2016-10-09
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多