source map
文件(.map)中记录了 编译后的代码行号与原始源代码行号之间的映射关系,浏览器通过这个映射关系找到并展示原始源码。
json
{
"version": 3,
"file": "app.min.js",
"sourceRoot": "",
"sources": [
"webpack://project/src/index.js",
"webpack://project/src/utils.js"
],
"names": ["button", "add", "console"],
"mappings": "AAAAA,QAAQC,MAAMC,QAAQC,MAAMC,SAASC,CAAC;;...",
"sourcesContent": ["源码内容1", "源码内容2"]
}
version
source map 版本file
生成的打包文件名sources
所有原始源文件路径names
源码中变量、函数名(可选)mappings
base64 编码的映射信息,记录了打包文件与源码的对应关系sourcesContent
源文件内容(可选),调试时浏览器可以直接展示
浏览器查找源码的优先级如下:
- sourcesContent(如果存在,直接展示)
- sources + sourceRoot(拼接出路径,尝试从服务器加载)
- 通过 devtools 网络面板加载源文件(如 Chrome DevTools)