深圳幻海软件技术有限公司 欢迎您!

Sentry 开发者贡献指南 - JavaScript SDK Minimal

2023-02-28

简介嵌入到应用程序中时使用配置 ​​client​​​ 的最小 ​​SentrySDK​​​。它允许​​库作者​​​添加对 ​​SentrySDK​​ 的支持,而无需捆绑整个 ​​SDK​​​ 或依赖于特定平台。简单来说,它是&n

简介

嵌入到应用程序中时使用配置 ​​client​​​ 的最小 ​​Sentry SDK​​​。它允许​​库作者​​​添加对 ​​Sentry SDK​​ 的支持,而无需捆绑整个 ​​SDK​​​ 或依赖于特定平台。简单来说,它是 ​​@sentry/node​​​ 或 ​​@sentry/browser​​ 等特定于平台的 SDK 库的公共基础部分。

Sentry JavaScript SDK Minimal

  • ​​https://github.com/getsentry/sentry-javascript/tree/master/packages/minimal​​

用法

要使用 ​​minimal​​​,您不必初始化 ​​SDK​​​。这应该由您库的用户处理。而是直接使用 ​​@sentry/minimal​​ 的导出函数添加面包屑或捕获事件:

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

// 为未来的事件添加面包屑
Sentry.addBreadcrumb({
  message: 'My Breadcrumb',
  // ...
});

// 捕获异常、消息或手动事件
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
  message: 'Manual',
  stacktrace: [
    // ...
  ],
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

请注意,虽然严格可行,但不鼓励干扰事件上下文。如果由于某种原因您的库需要注入上下文信息,请注意这可能会覆盖用户的上下文值:

// 设置用户信息、标签和其他附加信息
Sentry.configureScope(scope => {
  scope.setExtra('battery', 0.7);
  scope.setTag('user_mode', 'admin');
  scope.setUser({ id: '4711' });
  // scope.clear();
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

测试用例

PASS  test/lib/minimal.test.ts
  Minimal
    ✓ Clear Scope (1ms)
    ✓ returns undefined before binding a client (1ms)
    ✓ returns the bound client (1ms)
    ✓ Calls function on the client (1ms)
    ✓ does not throw an error when pushing different clients (1ms)
    ✓ does not throw an error when pushing same clients
    ✓ custom carrier (1ms)
    ✓ withScope (2ms)
    ✓ setExtras (1ms)
    ✓ setTags (1ms)
    ✓ setExtra (1ms)
    ✓ setTag
    ✓ setUser (1ms)
    ✓ setContext (1ms)
    Capture
      ✓ Return an event_id (4ms)
      ✓ Exception (1ms)
      ✓ Exception with explicit scope (1ms)
      ✓ Message (1ms)
      ✓ Message with explicit scope (1ms)
      ✓ Message with custom level (2ms)
      ✓ Event (1ms)
    configureScope
      ✓ User Context (2ms)
      ✓ Extra Context (1ms)
      ✓ Tags Context (1ms)
      ✓ Fingerprint
      ✓ Level (1ms)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.