Sentry CLI
使用 Sentry CLI 上传源映射。
在本指南中,您将学习如何成功使用我们的 sentry-cli
工具上传源映射。
本指南假设以下条件:
sentry-cli
版本 >=2.17.0
- Sentry JavaScript SDK 版本 >=
7.47.0
使用 Sentry CLI 配置源映射上传最简单的方法是通过 Sentry 向导:
npx @sentry/wizard@latest -i sourcemaps
向导将引导您完成以下步骤:
- 登录 Sentry 并选择一个项目
- 安装必要的 Sentry 包
- 配置您的构建工具以生成和上传源映射
- 配置您的 CI 以上传源映射
如果您想使用 CLI 配置源映射上传,请按照以下步骤操作。
您可以使用您选择的工具生成源映射。请参阅 上传源映射 下的其他指南中的示例。
您可以在以下链接找到 Sentry CLI 的安装说明:https://docs.sentry.io/cli/installation/
有关 sentry-cli
配置的更多信息,请参阅 Sentry CLI 配置文档。
确保 sentry-cli
已为您的项目配置好。为此,您可以使用环境变量:
.env.local
SENTRY_ORG=example-org
SENTRY_PROJECT=example-project
SENTRY_AUTH_TOKEN=sntrys_YOUR_TOKEN_HERE
调试 ID 用于将事件的堆栈帧与其对应的最小化源文件和源映射文件匹配。如果您想了解更多关于工件包和调试 ID 的信息,请访问 什么是工件包。
要注入调试 ID,请使用以下命令:
sentry-cli sourcemaps inject /path/to/directory
最小化源文件应在末尾包含一个名为 debugId
的注释,例如:
example_minified_file.js
...
//# debugId=<debug_id>
//# sourceMappingURL=<sourcemap_url>
源映射文件应包含一个名为 debug_id
的字段,例如:
example_source_map.js.map
{
...
"debug_id":"<debug_id>",
...
}
在您将调试 ID 注入工件后,使用以下命令上传它们。
sentry-cli sourcemaps upload /path/to/directory
打开 Sentry 并导航到 项目设置 > 源映射。如果您在选项卡导航中选择“工件包”,您将看到所有已成功上传到 Sentry 的工件包。
如果您是按照本指南在本地机器上操作,那么您已经成功完成了以下步骤:
- 通过运行应用程序的构建过程生成了最小化源文件和源映射文件(工件)。
- 将调试 ID 注入到刚刚生成的工件中。
- 使用我们的上传命令将这些工件上传到 Sentry。
最后一步是使用第一步中生成的工件部署应用程序的新版本。我们强烈建议您将 sentry-cli
集成到您的 CI/CD 流水线中,以确保每次后续部署都会自动将调试 ID 注入每个工件并直接上传到 Sentry。
警告
仅在您确定绝对需要这些可选步骤时才进行。使用 release
和 dist
值会使您的工件上传更加具体,但也会使整个过程更不宽容,可能导致您的代码无法被 Sentry 正确反混淆。
在您的 SDK 选项中提供一个 release
属性。
Sentry.init({
// This value must be identical to the release name specified during upload
// with the `sentry-cli`.
release: "<release_name>",
});
之后,使用额外的 --release
选项运行 sourcemaps upload
命令。请确保为 <release_name>
指定的值与 SDK 选项中指定的值相同。
sentry-cli sourcemaps upload --release=<release_name> /path/to/directory
使用 --release
选项运行 upload
不会自动在 Sentry 中创建版本。您可以等待第一个带有新版本设置的事件通过 Sentry.init
发送到 Sentry,或者使用相同的名称在单独的步骤中通过 CLI 创建版本。
除了 release
,您还可以为上传的工件添加 dist
,以设置上传文件的分发标识符。为此,请使用额外的 --dist
选项运行 sourcemaps upload
命令。
在您的 SDK 选项中提供 release
和 dist
属性。
Sentry.init({
// These values must be identical to the release and dist names specified during upload
// with the `sentry-cli`.
release: "<release_name>",
dist: "<dist_name>",
});
分发标识符用于在同一版本内区分多个同名文件。dist
可用于区分不同的构建或部署变体。
sentry-cli sourcemaps upload --release=<release_name> --dist=<dist_name> /path/to/directory