首页/新闻资讯/正文详情

highlight.io Source Map Uploader:为 Highlight 上传 Source Map 的 CLI 工具深度指南

发布时间:2026/9/27 11:14:19 来源:云帆数科 栏目:资讯中心
highlight.io Source Map Uploader:为 Highlight 上传 Source Map 的 CLI 工具深度指南
可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载导读本文围绕 highlight 开源仓库中的sourcemap-uploaderhighlight-run/sourcemap-uploader展开系统讲解如何将 JavaScript/TypeScript 构建产物生成的 source map 上传到 highlight.io从而在错误监控中把压缩混淆的堆栈还原为原始源码行。你将掌握该 CLI 的全部命令行参数、CI/CD 集成方式、自托管部署的backendUrl配置、Next.js 路由组route groups兼容处理以及上传背后的 GraphQL 调用链与对象存储签名 URL 机制可直接在真实构建流水线中落地使用。一、为什么需要 Source Map Uploaderhighlight.io 是一套开源的全栈可观测性平台支持错误监控、会话回放、日志与分布式追踪。前端代码在生产环境通常经过压缩与混淆浏览器上报的错误堆栈指向的是bundle.js:1:23456这类不可读位置。highlight.io 对 JavaScript 压缩堆栈有一流的还原支持但要还原到原始源码前提是平台能拿到对应的 source map 文件——尤其是那些没有随应用一起公开发布的 source map。此时就需要highlight-run/sourcemap-uploader这类命令行工具在 CI/CD 构建阶段把.map文件上传到 highlight.io。该包在仓库中位于 sourcemap-uploader是一个用 TypeScript 编写、通过 tsup 打包、以commander解析命令行参数的小型 CLI见 package.json。二、快速开始一条命令完成上传2.1 直接通过 npx 运行无需安装在构建流水线中直接调用见 README.mdnpx highlight-run/sourcemap-uploader upload --path/path/to/sourcemaps2.2 作为 npm script 固化// 在 package.json 中 { scripts: { upload-sourcemaps: npx highlight-run/sourcemap-uploader upload --path\/path/to/sourcemaps\ } }注意--apiKey是upload命令的必填参数requiredOption见 src/index.ts。若命令行未传工具会回退读取环境变量HIGHLIGHT_SOURCEMAP_UPLOAD_API_KEY两者都为空时直接抛出api key cannot be empty见 src/lib.ts。三、完整命令行参数说明upload子命令的全部参数定义在 src/index.ts整理如下参数简写类型必填默认值说明--apiKey-kstring是无highlight 项目 API Key可在项目设置的 Errors → Sourcemaps 页找到也可用环境变量HIGHLIGHT_SOURCEMAP_UPLOAD_API_KEY提供--appVersion-avstring否无按unversioned处理当前部署版本号需与H.init()/ 服务初始化时传入的version或serviceName-serviceVersion保持一致--path-pstring否.当前目录source map 所在目录或单个文件--basePath-bpstring否空上传路径的可选基础前缀用于对齐部署运行目录--backendUrl-bustring否https://pri.highlight.io后端地址自托管部署时用于指向你自己的后端3.1--backendUrl自托管部署支持自托管用户无法访问 highlight.io 的公共后端https://pri.highlight.io必须通过--backendUrl指向自己部署的后端实例。这正是 CHANGELOG 中0.6.1版本引入的能力5e61d5859之前的0.6.1support backend url for sourcemap uploader for self-hosted deployments。在源码中后端地址默认值与覆盖逻辑如下src/lib.tsconst backend backendUrl || https://pri.highlight.io;自托管部署示例npx highlight-run/sourcemap-uploader upload \ --apiKey ${HIGHLIGHT_API_KEY} \ --path ./dist \ --backendUrl https://your-self-hosted-backend.example.com四、上传流程与底层实现原理CLI 的执行入口是uploadSourcemapssrc/lib.ts整个流程分四步4.1 第一步校验 API Key工具向后端发送 GraphQL 查询api_key_to_org_id携带请求头ApiKey与请求体变量api_keysrc/lib.ts。返回的组织 ID 若为空或为0则抛出invalid api key。这一校验在 highlight 后端的对应解析器为APIKeyToOrgID见 backend/private-graph/graph/schema.resolvers.go即先用 API Key 换取组织 ID再以该 ID 作为对象存储路径前缀。4.2 第二步扫描 source map 文件工具递归扫描--path指定目录匹配**/*.js?(.map)即.js与.js.map并忽略**/node_modules/**src/lib.ts。若目录中连一个.js.map都没有会抛出No .js.map files found. Please double check that you have generated sourcemaps for your app.。若指定路径本身是单个文件则直接上传该文件src/lib.ts。4.3 第三步获取预签名上传 URL将所有文件的 S3 key 批量发送给后端 GraphQL 查询get_source_map_upload_urls换取可用的上传 URLsrc/lib.ts。后端解析器GetSourceMapUploadUrlsbackend/private-graph/graph/schema.resolvers.go会做两件关键事情跨项目防护强制校验每个路径都以{organizationId}/前缀开头否则拒绝invalid path - does not start with project prefix防止一个项目的 API Key 上传到别的项目空间生成签名 URL调用存储层StorageClient.GetSourceMapUploadUrl即 backend/storage/storage.go 中定义的Client接口方法S3 实现会返回带签名的直传 URL签名有效期约为 15 分钟见同文件签名逻辑。4.4 第四步并发上传并输出日志拿到 URL 列表后通过Promise.all并发地对每个文件执行PUT直传src/lib.ts上传完成后打印日志[Highlight] Uploaded /path/to/file.js.map to 123/express-abc123/webpack:/src/App.js.map这条日志在0.6.3版本中被更新CHANGELOGupdate sourcemap uploader log line用于更清晰地在 CI 日志中确认每个文件的上传结果。五、S3 Key 结构与版本管理上传文件的存储路径由getS3Key决定src/lib.tsreturn ${organizationId}/${version}/${basePath}${fileName};organizationIdAPI Key 校验后得到的组织 IDversion即--appVersion为空时自动回退为unversionedbasePath--basePath传入的可选前缀fileName相对扫描目录的完整文件路径含子目录。版本号设计上需与应用的serviceName和serviceVersion组合对齐例如H.init传入service_name: express, serviceVersion: abc123则--appVersion应为express-abc123。只有版本号一致highlight 才能用当前部署对应的 source map 还原当前 bundle 的错误堆栈。若省略--appVersionsource map 会以unversioned目录存储此时初始化 SDK 时也不要传version选项参见浏览器 Sourcemap 配置指南。六、Next.js 路由组Route Groups兼容处理Next.js 应用路由App Router支持用(group)语法组织目录例如app/(marketing)/about/page.tsx。这类目录名不出现在 URL 中但会出现在产物与 source map 的相对路径里导致前端错误堆栈与已上传 source map 路径不匹配。0.6.2版本专门解决了此问题CHANGELOGsupport next.js route groups by removing frontend groups from paths。实现上工具会用正则(\(.?\))\/剥离路径中的路由组段src/lib.ts并为每个含路由组的文件额外上传一份去除了路由组的副本src/lib.ts从而保证前后端错误还原时都能命中正确的 map 文件const routeGroupRemovedPath file.replaceAll(new RegExp(/(\(.?\))\//gm), ); if (file ! routeGroupRemovedPath) { // also upload the file to a path without the route group for frontend errors map.push({ path: join(realPath, file), name: routeGroupRemovedPath }); }七、在 CI/CD 中集成完整示例将 source map 上传作为构建流水线的一步并在部署前删除.map文件避免把源码泄露到公网。highlight 官方文档给出如下脚本浏览器端 Sourcemap 配置#!/bin/sh # 1. 构建应用确保已开启 source map 生成 yarn build # 2. 上传 source maps 到 highlight.io # 若 H.init 传入了 version请补上 --appVersion ... npx --yes highlight-run/sourcemap-uploader upload --apiKey ${YOUR_ORG_API_KEY} --path ./build # 3. 删除 source maps防止随应用发布 find build -name *.js.map -type f -delete # 4. 部署应用 ./custom-deploy-scriptNode.js 后端场景如部署到 Lambda可参考错误监控文档假设 bundle 输出到./backend/dist而线上运行目录是/var/run/dist/则用--basePath对齐yarn highlight-run/sourcemap-uploader upload \ --apiKey ${HIGHLIGHT_API_KEY} \ --appVersion ${APP_VERSION} \ --path ./backend/dist \ --basePath /var/run/dist/八、本地开发与调试在仓库中开发该工具时README 给出本地验证方式sourcemap-uploader/README.mdyarn build node dist/index.js upload --apiKey YOUR_API_KEY --path YOUR_SOURCEMAP_DIRyarn build调用tsup打包见 package.json产物为dist/index.jsCLI 入口含#!/usr/bin/env nodeshebang与可供程序化引用的dist/lib模块exports同时提供 CJS 与 ESM 格式。九、版本演进速览结合 CHANGELOGsourcemap-uploader/CHANGELOG.md当前版本 0.6.3 的演进脉络如下0.6.1新增--backendUrl参数使自托管部署可指向自己的后端0.6.2支持 Next.js 路由组自动剥离(group)路径段并冗余上传一份副本0.6.3优化上传成功日志行便于 CI 日志阅读与排查。十、常见问题排查api key cannot be empty未通过--apiKey或环境变量HIGHLIGHT_SOURCEMAP_UPLOAD_API_KEY提供 Key。invalid api keyKey 未通过api_key_to_org_id校验请检查项目设置中的 API Key。No .js.map files found--path目录下没有生成.js.map请确认构建工具已开启 source map 输出如 TypeScript 的sourceMap: true、webpack 的devtool、esbuild 的sourcemap选项等。Unable to generate source map upload urls后端返回的 URL 列表为空多与 API Key 无效或路径前缀不符有关。自托管上传失败确认已通过--backendUrl指向自建后端且后端存储层如 S3配置了正确的 source map 桶后端对应配置项为AWS_S3_SOURCE_MAP_BUCKET_NAME_NEW见 backend/env/environment.go。结语highlight-run/sourcemap-uploader是 highlight.io 错误还原链路上承上启下的关键一环它用最少的参数完成校验 Key → 扫描 map → 申请签名 URL → 并发直传四步流程并通过appVersion版本对齐、basePath路径映射、Next.js 路由组剥离等设计确保线上错误堆栈能稳定命中正确的 source map。将本文的命令与参数直接搬进你的 CI/CD 流水线即可让 highlight.io 的错误监控从压缩混淆的乱码堆栈升级为带源码预览的可读堆栈。赞分享可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载相关推荐OpenReplay sourcemap-uploader 使用指南向自建 OpenReplay 实例上传 JS Source MapOpenReplay sourcemap uploader 使用指南向自建 OpenReplay 实例上传 JS Source Map sourcemap u可观测性开发工具前端后端highlight.io Next.js SDK 集成指南从后端错误监控到 Source Map 上传highlight.io Next.js SDK 集成指南从后端错误监控到 Source Map 上传 本文基于 highlight.io 开源仓库中的 Ne可观测性后端highlight.io 的 Vercel 集成完全指南Source Map 自动上传与 Log Drain 日志接入highlight.io 的 Vercel 集成完全指南Source Map 自动上传与 Log Drain 日志接入 本指南基于 highlight.io可观测性后端上一篇MMSegmentation 模型体系全解分割器架构、核心接口与数据预处理器原理下一篇联想拯救者工具箱免费开源的 Vantage 替代方案一篇装好配好的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

UVM config_db实战指南:set/get机制、参数传递与调试技巧
UVM config_db实战指南:set/get机制、参数传递与调试技巧

1. config_db的核心使命:组件树中的跨层传参1.1 没有config_db时,验证环境怎么传参数做UVM验证的朋友,大概率都碰到过那种"set了config但get不到"的诡异问题。这是我在多次uvm实战中踩过最深的一个坑——不是语法不会写&#xff0c… · 2026/9/27 11:14:13

都兰县公司网站建设完整流程揭秘:3步避坑省一半预算
都兰县公司网站建设完整流程揭秘:3步避坑省一半预算

都兰县公司网站建设完整流程揭秘:3步避坑省一半预算 找都兰县公司网站建设,最怕的不是技术难,而是被坑高价。很多老板花几万块做的站,上线后百度搜不到,手机打开全是乱码,改个电话还得再掏钱。别急,今天咱们不聊虚的,直接拆解都兰县公司网站建设的完… · 2026/9/27 11:14:07

做网站人工智能3步搞定:避开域名服务器坑,性能优化省50%预算
做网站人工智能3步搞定:避开域名服务器坑,性能优化省50%预算

做网站人工智能3步搞定:避开域名服务器坑,性能优化省50%预算 域名和服务器是不是让你头晕?刚入行就遇到这些硬骨头,别慌。很多新手在陕西转行做网站,第一反应就是“这太复杂了”,其实只要理清思路,做网站人工智能并不是高不可攀的黑科技。今天咱们… · 2026/9/27 11:13:55

梁山网站开发救急:3个免费工具搞定被黑挂马
梁山网站开发救急:3个免费工具搞定被黑挂马

梁山网站开发救急:3个免费工具搞定被黑挂马 网站突然弹窗全是色情广告,后台密码改了也没用,浏览器直接标红不安全。这种被黑挂马的绝望感,做过站的人都知道有多窒息。很多梁山本地的小企业主,遇到这种情况第一反应是找当初建站的人,但往往对方已经失联… · 2026/9/27 11:59:02

昨天好好的,今天 Claude 无法进入?WSL 下 Node.js/npm 环境排查与 TaoToken 配置修复
昨天好好的,今天 Claude 无法进入?WSL 下 Node.js/npm 环境排查与 TaoToken 配置修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 11:59:02

7B 模型给大模型当“记忆管家”:ActiveContext 用强化学习打破长上下文瓶颈
7B 模型给大模型当“记忆管家”:ActiveContext 用强化学习打破长上下文瓶颈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 11:59:02

如何做论文网站进阶技巧
如何做论文网站进阶技巧

3种论文网站源码下载方案对比,域名服务器不踩坑指南 域名买错了?服务器选贵了?很多新手在做论文网站时,第一步就卡死在基础设施上。你辛辛苦苦找到的【源码下载】链接,解压后却发现连不上数据库,或者解析域名时提示未备案。这种挫败感我太熟悉了。别慌… · 2026/9/27 11:59:01

万象生鲜系统温度超限自动预警技术是领先关键点
万象生鲜系统温度超限自动预警技术是领先关键点

万象生鲜系统通过温度超限自动预警技术,在存储与运输环节确保生鲜产品保持最佳状态。该技术能实时监测温度变化,及时发现异常并发出预警通知相关人员。这不仅提升了产品的安全与质量,也让智能冷链管理发挥着关键作用。凭借这一系统&#xff0… · 2026/9/27 11:58:55

网站建设行业怎么样:3个免费工具搞定备案与部署
网站建设行业怎么样:3个免费工具搞定备案与部署

网站建设行业怎么样:3个免费工具搞定备案与部署 别再对着那些千篇一律的模板网站叹气,真的不够看。很多创业团队负责人跟我抱怨,花了大价钱找外包,做出来的官网像上世纪的产物,既丑又慢,根本留不住客户。更扎心的是,想自己折腾,又觉得域名、服务器、… · 2026/9/27 11:58:49

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码