Source Map 就是一个信息文件,里面储存着位置信息。也就是说,Source Map 文件中存储着代码压缩混淆前后的对应关系。有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,能够极大的方便后期的调试。
webpack 开发环境下的 Source Map:在开发环境下,webpack 默认启用了 Source Map 功能。当程序运行出错时,可以直接在控制台提示错误行的位置,并定位到具体的源代码:
默认Source Map 的问题:开发环境下默认生成的Source Map,记录的是生成后的代码的位置。会导致运行时报错的行数与源代码的行数不一致的问题。示意图如下:
解决默认Source Map 的问题:开发环境下,推荐在webpack.config.js 中添加如下的配置,即可保证运行时报错的行数与源代码的行数保持一致:
webpack 生产环境下的Source Map:在生产环境下,如果省略了devtool 选项,则最终生成的文件中不包含Source Map。这能够防止原始代码通过Source Map 的形式暴露给别有所图之人。
只定位行数不暴露源码:在生产环境下,如果只想定位报错的具体行数,且不想暴露源码。此时可以将devtool的值设置为nosources-source-map。实际效果如图所示:
采用此选项后:你应该将你的服务器配置为,不允许普通用户访问source map 文件!
Source Map 的最佳实践:
① 开发环境下: 建议把 devtool 的值设置为 eval-source-map 好处:可以精准定位到具体的错误行。
② 生产环境下: 建议关闭 Source Map 或将 devtool 的值设置为 nosources-source-map 好处:防止源码泄露,提高网站的安全性。
猜你喜欢:
前端必会框架:VUE2.0+3.0全套教程
VUE优点有哪些?VUE的特点介绍
vue初学:4小时+5个拣选案例快速入门Vue.js课程
transition-property属性有几个属性值?
传智前端与移动开发培训