当前位置: 首页 > 科技观察

Sentry官方JavaScriptSDK介绍和调试指南

时间:2023-03-14 21:35:45 科技观察

源码仓库地址https://github.com/getsentry/sentry-javascript支持的平台对于每个主流的JavaScript平台,都有一个特定的高级SDK,可以在单个包中提供了您需要的所有工具。有关更多详细信息,请参阅这些SDK的自述文件和描述:@sentry/browser:用于浏览器的SDK,包括与底层主干的集成(GlobalHandlers、TryCatch、Breadcrumbs、LinkedErrors、UserAgent、Dedupe)。@sentry/node:Node的SDK,包括Express、Koa、Loopback、Sails和Connect的集成。@sentry/angular:支持Angular集成的浏览器SDK。@sentry/react:支持React集成的浏览器SDK。@sentry/ember:支持Ember集成的浏览器SDK。@sentry/vue:启用浏览器SDK进行Vue集成。@sentry/gatsby:Gatsby的SDK。@sentry/nextjs:Next.js的SDK。@sentry/integrations:可用于增强JSSDK的可插入集成。@sentry/electron:具有本机崩溃支持的ElectronSDK。@sentry/react-native:具有本机崩溃支持的ReactNativeSDK。@sentry/capacitor:CapacitorApp和Ionic的SDK,具有本机崩溃支持。sentry-cordova:用于支持本机崩溃的Cordova应用程序的SDK。raven-js:旧的稳定JavaScriptSDK,我们仍然支持并发布SDK的错误修复,但所有新功能将在其继任者@sentry/browser中实现。raven:旧的稳定NodeSDK,如raven-js,我们仍然支持并发布SDK的错误修复,但所有新功能将在其继任者@sentry/node中实现。平台SDK开发共享包@sentry/tracing:提供性能监控/跟踪的集成和扩展。@sentry/hub:SDK的全局状态管理。@sentry/minimal:Sentry支持的最小SDK@sentry/core:所有具有接口、类型定义和基类的JavaScriptSDK的基础。@sentry/utils:一组对各种SDK有用的辅助函数和实用函数。@sentry/types:所有包中使用的类型定义。开发调试设置环境需要node.js和yarn来运行测试套件和代码linter。https://nodejs.org/downloadhttps://yarnpkg.com/en/docs/installsentry-javascript是一个包含多个包的monorepo,使用lerna来管理它们。首先,安装所有依赖项,使用lerna引导工作区,并执行初始构建,以便TypeScript可以读取所有链接的类型定义。yarnyarnlernabootstrapyarnbuild这样,repo就完全设置好了,您可以运行所有命令。构建包由于我们使用的是TypeScript,因此您需要将代码转换为JavaScript才能使用它。从repo的顶层开始,可以使用三个命令:yarnbuild:dev,它运行每个包的ES5和ES6版本的一次性构建。yarnbuild:dev:filter,它只在与给定包相关的项目中运行yarnbuild:dev(例如,运行yarnbuild:dev:filter@sentry/react将构建react包,它的所有依赖项(utils,core,浏览器等),以及所有依赖它的包(目前是gatsby和nextjs)。yarnbuild:dev:watch,runyarnbuild:devinwatchmode(recommended)addtests任何重要的修复/功能都应该包括测试。您会在每个包中找到一个测试文件夹。请注意,仅对于浏览器包,如果将新文件添加到集成测试套件中,则还需要将其添加到shell.js中的列表中。向现有文件添加测试在所有包中都是开箱即用的。运行测试运行测试的工作方式与构建相同——在项目根目录运行yarntest将为所有包运行测试,而在特定包中运行yarntest将为该包运行测试。还有用于在每个位置运行测试子集的命令。详见对应package.json的scripts入口。注意:您必须运行yarnbuild才能运行yarntest。调试测试如果您在编写测试时遇到问题并且需要调试其中一个测试,您可以使用VSCode的调试器来完成它。如果您尚未安装它,请安装TasksShellInput扩展,您可以在边栏的“扩展”选项卡中将其作为推荐的工作区扩展之一找到。将断点或调试器语句放置在测试或底层代码中您想要暂停的任何位置。打开包含相关测试的文件并确保其选项卡处于活动状态(以便您可以看到文件的内容)。切换到侧边栏中的调试器并从下拉列表中选择调试单元测试-只需打开文件。单击绿色的“播放”按钮以观察模式在打开的文件中运行测试。现场测试代码:https://github.com/getsentry/sentry-javascript/blob/master/packages/minimal/test/lib/minimal.test.ts专业提示:如果您的任何断点被多个测试运行,如果你运行整个测试文件,你会在你不关心的测试中一遍又一遍地卡在这些断点上。为避免这种情况,请将测试的初始it或测试替换为it.only或test.only。这样,当您遇到断点时,您就会知道您已经到达了相关测试部分。Linting类似于构建和测试,可以在项目根目录或单个包中通过调用yarnlint来完成linting。注意:您必须先运行yarnbuild才能运行yarnlint。