# Sentry文档

# Integration the SDK

通过CDN引入:

<script
  src="https://browser.sentry-cdn.com/5.15.4/bundle.min.js"
  integrity="sha384-Nrg+xiw+qRl3grVrxJtWazjeZmUwoSt0FAVsbthlJ5OMpx0G08bqIq3b/v0hPjhB"
  crossorigin="anonymous"></script>

注意:如果使用defer,要确保JS文件引入顺序,否则在此之前发生的错误Sentry将无法捕获。

通过npm引入:

npm install @sentry/browser

# Connecting the SDK to Sentry

在Sentry中创建项目后会得到一个DSN(Data Soure Name),需要利用这个DSN进行初始化:

import * as Sentry from '@sentry/browser';

Sentry.init({ dsn: 'https://<key>@sentry.io/<project>' });

# Verifying Your Setup

Sentry.captureException(new Error("Something broke"));

执行该语句会向Sentry发送一个错误报告,打开Sentry对应项目的Issue面板即可查看到错误信息。

# Capturing Errors

# Automatically Capturing Errors

通过引入并配置Sentry,SDK将自动补货全局的uncaught exceptionunhandled rejection

对于跨域资源产生的错误,需要注意CORS规则,详见:What the heck is "Script error"? (opens new window)

# Automatically Capturing Errors with Promises

默认情况下,Sentry将会自动捕获未处理的Promise异常。

如果你使用第三方Promise库,需要进行一些额外的Sentry配置。

大多数prmise库都会有全局的hook捕获未处理的错误,你可能需要将全局选项onunhandledrejection设置为false,并手动在相关的事件处理函数中调用Sentry.captureException

# Releases

告知Sentry代码发布的版本号,可以带来以下功能:

  • 得知新版本发布带来的问题
  • 确定哪一次commit造成的问题,由此得知应该由谁来负责
  • 通过在commit信息中携带issue号来解决问题
  • 代码发布后接受邮箱通知

配置了SDK后,设置以下两步操作开启Release功能:

  • 创建Release和相关Commits
  • 告诉Sentry你发布了新的版本

详见Setnry官方文档中Workflow and Integration的Releases章节。

可以通过配置Webpack插件进行配置。