SourceMap mappings解析

源映射格式

{
  version: 3, //Source Map(源映射)的版本號,目前統(tǒng)一使用版本 3
  file: 'min.js', // (可選)生成文件的路徑(相對于 Source Map(源映射) 本身路徑)
  names: ['bar', 'baz', 'n'], // (可選)所有名稱,如變量名、函數(shù)名
  sourceRoot: 'http://example.com/www/js/', // (可選)所有源文件的根路徑(相對于 Source Map(源映射) 本身路徑)
  sources: ['one.js', 'two.js'], //所有源文件的路徑(相對于 sourceRoot)
  sourcesContent: ['', ''], //(可選)所有源文件的內(nèi)容
  mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' //所有映射點
}

所有地址可以是 http:// 開頭的網(wǎng)址或者是本地文件地址。

下面著重介紹mappings

mappings 是一個數(shù)組通過一定的方式編碼Base64 VLQ得到的。
結(jié)構(gòu)如下:

mappings = [
[ [生成文件的列,源文件索引,源文件行號,源文件列號,名稱索引], ...], // 第1行第1個映射點,第1行第2個映射點, ...
[ [生成文件的列,源文件索引,源文件行號,源文件列號,名稱索引], ...] // 第2行第1個映射點,第2行第2個映射點, ...
]

映射點的三種情況:
[生成文件的列]
[生成文件的列,源文件索引,源文件行號,源文件列號]
[生成文件的列,源文件索引,源文件行號,源文件列號,名稱索引]

源映射所有的行列號都是從0開始計數(shù)的。

mappings: [
  [],   //第0行
  [],   //第1行
  [     //第2行
    [1,0,2,5,1],
    [4,0,3,6,0]
    //包含了5個數(shù)字,分別表示
    // 4 生成文件的列
    // 0 源文件索引
   //  3 源文件行號
   //  6 源文件列號
   //  0 名稱索引
  ]
]
sourceMappings.jpeg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容