之前都是借助浏览器直接使用SourceMap,只知道里面储存着位置信息,来将压缩混淆后的代码还原回压缩混淆前的代码,但对其具体格式并不了解。因 为笔者近期在对NEJ打包脚本做升级,希望只保留NEJ对代码模块依赖分析的部分,对于代码编译引入Babel,对于代码混淆则引入UglifyJS 3的版本。因此必须对SourceMap格式做详细的了解,以实现SourceMap经过Babel,UglifyJS,文件合并后,依然能保持正确,实现代码的反混淆。
如何告知SourceMap文件地址
在JS文件底部,增加一行注释
//# sourceMappingURL=/path/to/file.js.map
或者设置特殊的 HTTP HEADER
SourceMap: /path/to/file.js.map
X-SourceMap: /path/to/file.js.map (deprecated)