简介
嵌入到应用程序中时使用配置 client
的最小 Sentry SDK
。它允许库作者
添加对 Sentry SDK
的支持,而无需捆绑整个SDK
或依赖于特定平台。简单来说,它是 @sentry/node
或 @sentry/browser
等特定于平台的 SDK 库的公共基础部分。
Sentry JavaScript SDK 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: [ // ... ], });
请注意,虽然严格可行,但不鼓励干扰事件上下文。如果由于某种原因您的库需要注入上下文信息,请注意这可能会覆盖用户的上下文值:
// 设置用户信息、标签和其他附加信息 Sentry.configureScope(scope => { scope.setExtra('battery', 0.7); scope.setTag('user_mode', 'admin'); scope.setUser({ id: '4711' }); // scope.clear(); });
测试用例
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)