JavaScript 源映射解码器
解码 .map 文件的 Base64 VLQ 映射以找到缩小位置背后的原始源、行和列,浏览完整的生成到原始映射表,或将整个缩小的堆栈跟踪逆映射回您的源。
输入
.map 文件的内容,或从内联 //# sourceMappingURL= data: URI 解码的 JSON。
基于 1,如代码编辑器或浏览器堆栈跟踪中所示 — 一行中的第一个字符是第 1 列。
输出
使用指南
当捆绑器缩小您的 JavaScript 时,它会在旁边生成一个 .map 文件 — 一个 JSON 文档,将缩小输出中的每个位置映射回原始源中的一行和列。手动读取该映射意味着解码打包到地图 mappings 字段中的 Base64 VLQ(可变长度数量)段,这正是该工具为您所做的二进制算法工作。
如何使用
将 .map 文件的内容粘贴到源映射字段中(或直接上传),然后选择一种模式:
- 查找位置 — 输入缩小的行和列(如在浏览器的 DevTools 或缩小代码查看器中所示),以获取原始文件、行、列和周围源代码的片段。
- 完整映射表 — 查看源映射包含的每个生成到原始的映射,每个段一行。
- 逆映射堆栈跟踪 — 粘贴整个缩小的堆栈跟踪,获得相同的跟踪,其中每个可识别的
file:line:column都被重写到其原始位置。
在哪里找到源映射
大多数捆绑器(webpack、esbuild、Vite、Rollup、Terser)可以自动生成一个 — 在缩小文件的末尾查找 //# sourceMappingURL= 注释。如果它指向 .map URL,请获取该文件的内容;如果它是内联 data:application/json;base64,... URI,请解码 Base64 并将生成的 JSON 粘贴在这里。
常见问题
为什么位置查找需要基于 1 的行/列?
因为这是您在其他任何地方看到的 — 代码编辑器的行/列指示符、浏览器的 DevTools 和 JavaScript 堆栈跟踪都从 1 开始计数。该工具在内部转换为源映射实际使用的基于 0 的列,因此您无需自己做这个数学计算。
上下文代码片段是否总是显示?
仅当源映射嵌入原始文件的内容时才显示(sourcesContent)。某些构建工具会省略它以保持映射较小 — 没有它,该工具仍然可以报告确切的原始文件、行和列,只是没有代码预览。
如果我的堆栈跟踪跨越多个文件会怎样?
此工具将一个粘贴的源映射应用于它可以从中解析 file:line:column 的每一帧 — 文件名本身不匹配,因此它适用于完全来自一个包的堆栈跟踪。对于跨越多个捆绑文件的堆栈跟踪,一次逆映射几帧,使用每一帧实际所属文件的源映射。
我的代码未缩小 — 我只想阅读它
对于您想要重新格式化的未缩小、已可读的代码,请改用 JavaScript 代码格式化程序。要朝另一个方向走 — 将您的源缩小到源映射解码回的缩小文件 — 请参阅 JavaScript 缩小工具。
隐私
一切都在您的浏览器中运行 — 源映射、堆栈跟踪和您上传的任何文件都不会离开您的设备。
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/source-map-decoder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "position",
"sourceMapText": "{\"version\":3,\"sources\":[\"src.js\"],\"sourcesConten…",
"minifiedLine": "1",
"minifiedColumn": "21",
"contextLines": "1"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `source-map-decoder` tool (JavaScript Source Map Decoder) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/source-map-decoder/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="JavaScript 源映射解码器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次调用费用 | 5 积分起 |
|---|