Source map 堆栈映射
通过普通 v3 source map 映射指定堆栈或坐标,保留未映射帧并明确列编号基准。
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
从本地生成代码堆栈恢复原始源码位置。提供配套 map 和准确的生成文件名,逐行检查已映射、未映射及其他文件的帧。
如何使用
- 打开本地普通 .map 文件或粘贴 JSON,填写堆栈中准确的生成文件名或 URL。
- 粘贴堆栈或切换到坐标 JSON,映射前选择生成列基准。
- 检查每行状态和从 0 开始的原始列,下载完整报告及保留的未映射文本。
支持范围与限制
一个 UTF-8 source map 文件或粘贴 JSON,加堆栈或坐标,合计不超过 5 MiB。最多 10,000 个帧、各 10,000 个源码/名称条目、100,000 个生成映射行和 100,000 个映射段。所选文件优先。
只接受普通 version 3 map,拒绝 indexed sections。严格检查 VLQ 段形状、源码/名称索引、有序且不重复的生成列及非负原始位置。VLQ 值和位置限定在兼容有符号 32 位解码器的范围。拒绝重复或规范化后冲突的源码名称。
生成行从 1 开始,生成列基准可显式选择从 0 或从 1 开始;原始列始终从 0 开始。生成文件名必须完全一致,在同一生成行按不超过目标列的最近映射段查找。不猜文件名、不联网、不执行源码,sourceRoot 和源码名称保留可见。
支持有限 Chrome 风格 at 文件:行:列 / at 名称 (文件:行:列)、Firefox 名称@文件:行:列、裸坐标,或 {file?,line,column} JSON 数组。无法解析的行、未映射位置和其他文件帧保留。预览显示 200 行,完整 JSON/CSV 和映射文本可下载。
操作示例
示例输入
{"version":3,"file":"bundle.js","sourceRoot":"/app/","sources":["src/a.ts"],"names":["greet"],"mappings":"AAAAA;AACA"}示例参数
{"secondary": "Error: example\n at greet (bundle.js:1:1)\n at bundle.js:2:1\n at bundle.js:3:1\n at vendor.js:1:1", "params": {"generatedFile": "bundle.js", "inputFormat": "stack", "columnBasis": "one"}}示例输出
{
"generatedFile": "bundle.js",
"inputColumnBasis": "one",
"originalColumnBasis": "zero",
"sourceRoot": "/app/",
"mappings": 2,
"records": [
{
"raw": "Error: example",
"file": null,
"line": null,
"column": null,
"function": null,
"index": 1,
"status": "unparsed",
"original": null
},
{
"raw": " at greet (bundle.js:1:1)",
"function": "greet",
"file": "bundle.js",
"line": 1,
"column": 1,
"index": 2,
"status": "mapped",
"original": {
"source": "/app/src/a.ts",
"line": 1,
"column": 0,
"name": "greet"
}
},
{
"raw": " at bundle.js:2:1",
"function": null,
"file": "bundle.js",
"line": 2,
"column": 1,
"index": 3,
"status": "mapped",
"original": {
"source": "/app/src/a.ts",
"line": 2,
"column": 0,
"name": null
}
},
{
"raw": " at bundle.js:3:1",
"function": null,
"file": "bundle.js",
"line": 3,
"column": 1,
"index": 4,
"status": "unmapped",
"original": null
},
{
"raw": " at vendor.js:1:1",
"function": null,
"file": "vendor.js",
"line": 1,
"column": 1,
"index": 5,
"status": "other-file",
"original": null
}
]
}出现问题时
核对生成文件名或 URL 完全一致,并选择正确的列基准。修复不合法映射或使用普通 map,减少帧数量;不支持的堆栈语法可转换为明确坐标 JSON。
常见问题
会下载 map 或源码文件吗?
不会。只在本地处理输入的 map 和帧。
为什么 vendor 帧保持原样?
其文件名与指定生成文件不同。请使用正确的 map 与文件组合,不按 basename 猜测。
能展开 indexed map 的 sections 吗?
不能。请先得到经过验证的普通 v3 map;工具明确拒绝 sections,避免只映射部分文件。