自己的回答
sourcemap是开发环境中用来定位源码问题的, 映射转换后的代码和源码之间的关系
分为
- eval-source-map
- cheap-eval-source-map
- cheap-module-eval-source-map
- cheap-source-map
- inline-source-map
- hidden-source-map
- nosources-source-map
开发环境一般使用cheap-module-eval-source-map
- 需要调试loader转换前的代码
- 每行代码长度有限, 只需要定位行数
- 打包速度尚可
生产环境
- 打开sourceMap会暴露源码
使用nosources-source-map, 可以定位问题, 也不会暴露源码
参考答案
source map是将编译、打包、压缩后的代码映射回源代码的过程。打包压缩后的代码不具备良好的可读性,想要调试源码就需要 soucre map。
map文件只要不打开开发者工具,浏览器是不会加载的线上环境一般有三种处理方案:
- hidden-source-map:借助第三方错误监控平台Sentry使用
- nosources-source-map:只会显示具体行数以及查看源代码的错误栈。安全性比source map高
- source:通过nginx设置将.map文件只对白名单开放(公司内网)
注意的是:避免在生产中使用 inline- 和 eval- ,因为它们会增加bundle体积大小,并降低整体性能。