网易首页 > 网易号 > 正文 申请入驻

Sentry 官方 JavaScript SDK 简介与调试指南

0
分享至

作者: 来源: 黑客下午茶

源码仓库地址

https://github.com/getsentry/sentry-javascript

支持的平台

对于每个主要的 JavaScript 平台,都有一个特定的高阶 SDK,可以在单个包中提供您需要的所有工具。有关更多详细信息,请参阅这些 SDK 的 README 和说明:

  • @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: 启用 Vue 集成的浏览器 SDK。
  • @sentry/gatsby: Gatsby 的 SDK。
  • @sentry/nextjs: Next.js 的 SDK。
  • @sentry/integrations: 可用于增强 JS SDK 的可插拔集成。
  • @sentry/electron: 支持原生崩溃的 Electron SDK。
  • @sentry/react-native: 支持原生崩溃的 React Native SDK。
  • @sentry/capacitor:支持原生崩溃的 Capacitor App 和 Ionic 的 SDK。
  • sentry-cordova:支持原生崩溃的 Cordova App 的 SDK。
  • raven-js:旧的稳定 JavaScript SDK,我们仍然支持并发布 SDK 的错误修复,但所有新功能都将在 @sentry/browser 中实现,它是继任者。
  • raven:旧的稳定 Node SDK,与 raven-js 一样,我们仍然支持并发布 SDK 的错误修复,但所有新功能都将在 @sentry/node 中实现,它是继任者。
用于平台 SDK 开发的共享软件包
  • @sentry/tracing: 为性能监控/跟踪提供集成和扩展。
  • @sentry/hub: SDK 的全局状态管理。
  • @sentry/minimal: Sentry 支持的最小 SDK
  • @sentry/core: 具有接口、类型定义和基类的所有 JavaScript SDK 的基础。
  • @sentry/utils: 一组对各种 SDK 有用的辅助程序和实用函数。
  • @sentry/types: 所有软件包中使用的类型定义。
开发调试

设置环境

要运行 test suite 和 code linter,需要 node.js 和 yarn。

  • https://nodejs.org/download
  • https://yarnpkg.com/en/docs/install

sentry-javascript 是一个包含多个软件包的 monorepo,使用 lerna 管理它们。首先,安装所有依赖项,使用 lerna 引导工作区,然后执行初始构建,以便 TypeScript 可以读取所有链接的类型定义。

yarn
yarn lerna bootstrap
yarn build

这样,repo 就完全设置好了,您可以运行所有命令了。

构建软件包

由于我们使用的是 TypeScript,因此您需要将代码转换为 JavaScript 才能使用它。来自 repo 的顶层,有三个可用命令:

  • yarn build:dev,它运行每个包的 ES5 和 ES6 版本的一次性构建。
  • yarn build:dev:filter ,它只在与给定包相关的项目中运行 yarn build:dev(例如,运行 yarn build:dev:filter @sentry/react 将构建 react 包、它的所有依赖项(utils、core、browser 等),以及所有依赖它的包(目前是 gatsby 和 nextjs))。
  • yarn build:dev:watch,在 watch 模式下运行 yarn build:dev(推荐)

添加测试

任何重要的修复/功能都应该包括测试。您会在每个软件包中找到一个 test 文件夹。

请注意,仅对于 browser 包,如果您将新文件添加到集成测试套件中,您还需要将其添加到shell.js 中的列表中。在所有包中,向现有文件添加测试都可以开箱即用。

运行测试

运行测试与构建的工作方式相同 - 在项目根目录运行 yarn test 将对所有包运行测试,在特定包中运行 yarn test 将为该包运行测试。还有一些命令可以在每个位置运行测试的子集。查看相应 package.json 的 scripts 条目以了解详细信息。

注意:你必须在 yarn test 工作之前运行 yarn build。

调试测试

如果您在编写测试时遇到麻烦并需要调试其中之一,您可以使用 VSCode 的 debugger 来完成。

如果您尚未安装它,请安装 Tasks Shell Input 扩展,您可以在侧边栏的“扩展”选项卡中找到它作为推荐的工作区扩展之一。

  • 将断点或 debugger 语句放置在测试或底层代码中您希望 jest 暂停的任何位置。
  • 打开包含相关测试的文件,并确保其选项卡处于活动状态(以便您可以看到文件的内容)。
  • 切换到侧边栏中的 debugger,然后从下拉列表中选择 Debug unit tests - just open file。
  • 单击绿色的 “play” 按钮 watch 模式在打开的文件中运行测试。

实战

测试代码:

https://github.com/getsentry/sentry-javascript/blob/master/packages/minimal/test/lib/minimal.test.ts

专业提示:如果您的任何断点在由多个测试运行的代码中,并且您运行整个测试文件,您将在不关心的测试中间一遍又一遍地停留在这些断点上。为避免这种情况,请将测试的初始 it 或 test 替换为 it.only 或 test.only。这样,当您遇到断点时,您就会知道您到达了有问题的测试的一部分。

Linting

与构建和测试类似,linting 可以通过调用 yarn lint 在项目根目录或单个包中完成。

注意:你必须在 yarn lint 工作之前运行 yarn build。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马斯克现身SpaceX敲钟现场

马斯克现身SpaceX敲钟现场

财闻
2026-06-12 21:58:52
高铁行李架惊现白色宠物蛇,列车长仅用一个黑色塑料袋徒手拿捏;铁路部门:该蛇为白变德州鼠蛇幼蛇,系旅客私自夹带,现场无人认领

高铁行李架惊现白色宠物蛇,列车长仅用一个黑色塑料袋徒手拿捏;铁路部门:该蛇为白变德州鼠蛇幼蛇,系旅客私自夹带,现场无人认领

极目新闻
2026-06-12 10:06:52
为什么90年代全港黑道没人敢动周星驰?

为什么90年代全港黑道没人敢动周星驰?

手工制作阿歼
2026-06-12 01:19:55
“鹅腿阿姨”被举报后续:更多恶行被扒,儿子骂顾客仅是冰山一角

“鹅腿阿姨”被举报后续:更多恶行被扒,儿子骂顾客仅是冰山一角

八斗小先生
2026-06-11 10:49:10
李刚仁身价又涨了 马竞又加价了!洪明甫太有魄力 一语维护孙兴慜

李刚仁身价又涨了 马竞又加价了!洪明甫太有魄力 一语维护孙兴慜

刀锋体育
2026-06-12 17:32:11
米萨诺练习赛张雪机车成绩:卡里卡苏洛第11名,德比斯14

米萨诺练习赛张雪机车成绩:卡里卡苏洛第11名,德比斯14

代古龙侃球
2026-06-12 20:50:09
轻熟穿搭:不是穿得老,是穿得懂

轻熟穿搭:不是穿得老,是穿得懂

疾跑的小蜗牛
2026-06-12 20:56:06
NBA顶碗大妈演出费曝光!每场6765美元 主办方提供至少四星酒店

NBA顶碗大妈演出费曝光!每场6765美元 主办方提供至少四星酒店

罗说NBA
2026-06-12 05:53:52
20岁女孩当小姐目标3年赚500万,2022年只赚100万就因偷东西被抓

20岁女孩当小姐目标3年赚500万,2022年只赚100万就因偷东西被抓

汉史趣闻
2026-06-06 14:54:19
看完世界杯揭幕战,让球迷看清4个事实,盲目扩军会拉低比赛质量

看完世界杯揭幕战,让球迷看清4个事实,盲目扩军会拉低比赛质量

郭蛹包工头
2026-06-12 10:14:14
一个家庭最大的悲哀:没有一个社会化的人

一个家庭最大的悲哀:没有一个社会化的人

心理观察局
2026-06-07 06:15:05
8个部门联手查你,不是吓你

8个部门联手查你,不是吓你

职场资深秘书
2026-06-05 15:57:56
余承东:要带领盘古大模型走向世界第一

余承东:要带领盘古大模型走向世界第一

界面新闻
2026-06-12 16:27:16
凯恩拜仁续约谈判陷入停滞

凯恩拜仁续约谈判陷入停滞

体坛周报
2026-06-12 00:29:27
蔡欣洋:用自信和真诚接住每个角色丨短剧演员说

蔡欣洋:用自信和真诚接住每个角色丨短剧演员说

新京报
2026-06-12 17:17:30
6月这6种鱼,全是纯野生的,人工养不出来,肉嫩刺少,懂行的在抢

6月这6种鱼,全是纯野生的,人工养不出来,肉嫩刺少,懂行的在抢

阿龙美食记
2026-06-09 15:26:48
西班牙小公主衣品上线,一家5口陪姐姐出席“女王杯”

西班牙小公主衣品上线,一家5口陪姐姐出席“女王杯”

聪明的橙子hj
2026-06-11 17:54:06
安徽入室抢劫案,母亲被嫌疑人蹂躏三小时,死前哀求他别吵醒女儿

安徽入室抢劫案,母亲被嫌疑人蹂躏三小时,死前哀求他别吵醒女儿

历史品鉴仓
2026-06-11 17:19:50
四野战将喝酒被林彪掀桌,94岁时,林豆豆送他一件礼物,当场落泪

四野战将喝酒被林彪掀桌,94岁时,林豆豆送他一件礼物,当场落泪

翠羽
2026-06-12 11:40:24
沃尔沃XC90放“大招”!给出22.6万优惠,网友:这也太狠了

沃尔沃XC90放“大招”!给出22.6万优惠,网友:这也太狠了

汽车网评
2026-06-12 21:44:03
2026-06-12 23:23:00
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 823关注度
往期回顾 全部

科技要闻

鸿蒙7发布,余承东:首个完成AI化改造系统

头条要闻

男子毕业16年后学位证"无法认证" 高校最新通报

头条要闻

男子毕业16年后学位证"无法认证" 高校最新通报

体育要闻

欧洲恐韩?肉德维德?

娱乐要闻

一天4个瓜,肖战热巴最意外

财经要闻

万亿美元顺差背后,透露这些信号

汽车要闻

标配激光雷达/双动力可选 昊铂S600限时售17.99万起

态度原创

房产
艺术
本地
公开课
军事航空

房产要闻

海南最赚钱行业曝光!最快4年半,海口全款买三房!

艺术要闻

这组照片真迷人,SSS级颜值和身材!

本地新闻

AK刘彰邂逅河北南大港湿地

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊朗媒体:已故最高领袖葬礼推迟举行

无障碍浏览 进入关怀版