Source Map
项目在投入到生产坏境之前,需要对javaScript源代码进行压缩混淆,从而减小文件的体积,提高文件的加载效率,
而对于压缩混淆后的代码出错是一个困难的事情
- 变量被替换成没有任何语义的名称
- 空行和注释被剔除
Source Map 是一个信息文件,里面存储着位置信息,代码压缩混淆前后的对应关系
有了它出错工具将直接显示原始代码,方便后期调试
开发环境下
webpack默认启用了Source Map 功能,当程序出错时,可以直接在控制台提示错误信息
但是Source Map记录的是生成后代码的位置,会导致运行时报错的行数和源代码不一致
解决:在webpack.config.js文件中配置
module.exports = {
mode:'development',
//仅限在开发模式下
devtool:'eval-source-map',
}
生产环境下
如果省略了devtool选项,则最终的文件不包含Source Map 防止代码泄露,但是不利于调试
所以有一个只定位行数不暴露源码,把devtool设置为nosource-source-map,此时的报错行数是源代码的错误行数,而点击定位确实压缩后的文件