sourceMap原理解析,快速定位压缩的源代码
调试痛点解析
打包发布后的代码,无法定位到对应源码的位置痛点一:js 报错,无法定位源代码
文章图片
文章图片
痛点二:CSS 压缩后,无法定位源代码
css(css-loader) , less(less-loader), sass(sass-loader) , postcss-loadersouceMap 原理解析 把打包后的代码和源代码做一种关联,在chrome浏览器调试界面和上报错误信息里可以看到原始文件的准确位置(路径,行,列)
文章图片
文章图片
文章图片
css sourceMap效果 在审查元素时,可以方便的定位到源码位置
文章图片
js sourceMap效果 高级调试技巧
- 通过sourceMap已经知道了源码路径,通过chrome和webstorm的方式进行关联,自动在ide中打开指定文件
文章图片
sourceMap的不同效果 效果一:sourceMap
文章图片
效果二:
devtool: '#eval-source-map
【sourceMap原理解析,快速定位压缩的源代码】
文章图片
能够点击查看
vue-cli的源码在 source中的 webpack:// 目录中查看
文章图片
常见问题 上传souceMap会导致加载变慢吗? 结论:普通用户,不会变慢
原理:只有在开启debug模式是map文件才会加载,比如打开chrome的调试工具
.map文件为什么在chrome控制台看不到请求? 因为浏览器把 .map文件过滤掉了,但是可以在chrome控制台的souce内看到map解析后的源文件内容
本地如何调试线上代码? 把本地的souceMap 和指定文件进行关联
- 点击报错信息,跳转到文件内容
- 右键添加souce map
- 把地址写入添加的地址:file:///Users/xz/Documents/code/myGithub/react-todoList/main.f5113e73.js.map
- 添加完成之后,再切换回console面板,可以看到源码保存的位置,点击可跳转到指定目录
文章图片
文章图片
注意事项
- 开启sourceMap后,会导致打包变的很慢,如果确认你的项目不需要生成sourceMap一定要把这个选项关闭,umi默认是关闭的
- webpack4系列教程,如何设置css的sourcemap?
- 绝了,没想到一个 source map 居然涉及到那么多知识盲区
- JavaScript Source Map 详解
- Chrome调试关联本地sourcemap文件
推荐阅读
- 做一件事情的基本原理是什么()
- 【读书笔记】贝叶斯原理
- SG平滑轨迹算法的原理和实现
- “写作宝典”《金字塔原理》之读书笔记
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- Android系统启动之init.rc文件解析过程
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件