Next.js

Next.js 是一个灵活的 React 框架,它提供了构建块来创建快速的、全栈Web应用程序。学习如何将其与 Sentry 集成。

特性:

  • 自动 错误跟踪,支持 JavaScript 和 TypeScript 的源映射
  • 自动 追踪,适用于客户端和服务器端
  • 支持 Vercel 边缘运行时中的 中间件边缘路由 的错误和性能监控。由于运行时的复杂性,某些错误功能(如堆栈跟踪)可能不如预期。需要 sentry.edge.config.js,更多信息请参阅此处
  • 事件通过设备数据 丰富
  • 为传出 HTTP 请求(使用 XHR 和 Fetch)以及控制台日志创建 面包屑
  • 版本健康 用于跟踪无崩溃用户和会话

Sentry SDK 在 next dev --turbo 模式下不完全支持 Turbopack,因为 Turbopack 尚未提供运行 Sentry 所需的所有功能。

目前,当您使用 Turbopack 运行开发服务器时,Sentry Next.js SDK 将不会在浏览器中加载。 配置 SDK 时请注意这一点。

请注意,这仅影响开发服务器。 在生产构建时,即使您本地使用 Turbopack 开发,Sentry SDK 也会正常运行。

要支持 Turbopack 下浏览器中的 SDK,请关注 Next.js 仓库中的客户端 instrumentation 功能请求

您可以在 GitHub Issue 中跟踪 Sentry 的 Turbopack 支持情况

Sentry 通过在应用程序运行时使用 SDK 来捕获数据。

我们建议通过我们的安装向导来安装 SDK:

Copied
npx @sentry/wizard@latest -i nextjs

安装向导将提示您登录到 Sentry。然后它会自动为您完成以下步骤:

  • 为每个运行时(Node.js、浏览器、边缘)创建带有默认 Sentry.init() 调用的配置文件
  • 向您的项目添加一个 Next.js 仪器钩子 (instrumentation.ts)
  • 创建或更新您的 Next.js 配置文件,包含默认的 Sentry 配置
  • 创建 .sentryclirc 文件,用于上传源映射(此文件会自动添加到 .gitignore
  • 向您的应用程序添加一个示例页面以验证您的 Sentry 设置

在向导设置完成后,SDK 将自动捕获未处理的错误并监控性能。 您也可以手动捕获错误

要了解如何将您的应用程序连接到 Sentry 并在 Vercel 上部署,请参阅Vercel 集成

如果通过向导进行设置无法正常工作,您也可以手动设置 SDK

要完成配置,请在 Sentry.init() 调用中添加 选项。 在这里,您还可以设置上下文数据——例如,关于用户的数据、标签,甚至是任意数据——这些数据将被添加到发送到 Sentry 的每个事件中。

此代码片段包含一个有意的错误,因此您可以立即测试设置是否正常工作。

添加一个在点击时会抛出错误的前端组件按钮:

pages/index.js
Copied
<button
  type="button"
  onClick={() => {
    throw new Error("Sentry Frontend Error");
  }}
>
  Throw error
</button>;

并在 API 路由中抛出一个错误:

pages/api/error.js
Copied
export default (req, res) => {
  throw new Error("API throw error test");
  res.status(200).json({ name: "John Doe" });
};

通过浏览器开发者工具触发的错误是沙盒化的,因此它们不会触发错误监控。在验证 Sentry SDK 安装时请记住这一点。

了解更多关于手动捕获错误或消息的信息,请参阅我们的使用文档

要查看和解决记录的错误,请登录 sentry.io 并选择您的项目。单击错误标题将打开一个页面,您可以在其中查看详细信息并将其标记为已解决。