webpack ---- Source Map

简介: webpack ---- Source Map

6 Source Map

6.1 什么是Source Map

Source Map就是一个信息文件,里面储存着位置信息。也就是说,Source Map 文件中存储着压缩混淆后的代码所对应的转换前的位置。

有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码,能够极大的方便后期的调试。

Source Map 可以在报错时提示对应的源文件的行号,便于定位错误位置修改错误。

6.2 默认Source Map的问题

开发环境下默认生成的Source Map记录的是生成后的代码的位置。会导致运行时报错的行数与源代码的行数不一致的问题。示意图如下:

6.3 解决默认Source Map的问题

开发环境下,推荐在webpack.config.js中添加如下的配置,即可保证运行时报错的行数与源代码的行数保持一致:

module.exports = {
  mode: 'development',
  // eval-source-map 仅限在"开发模式"下使用,不建议在“生产模式"下使用。
  //此选项生成的Source Map 能够保证"运行时报错的行数"与"源代码的行数"保持一致
  devtool: 'eval-source-map' ,
  //省略其他配置项...
}

6.4 webpack生产环境下的Source Map

在生产环境下,如果省略了devtool选项,则最终生成的文件中不包含Source Map。这能够防止原始代码通过Source Map 的形式暴露给别有所图之人。

6.4.1只定位行数不暴露源码

在生产环境下,如果只想定位报错的具体行数,且不想暴露源码。此时可以将devtool的值设置为

nosources-source-map。实际效果如图所示:

在实际发布的时候,建议大家把 devtool 的值设置为nosources-source-map或直接关闭SourceMap。

6.4.2 定位行数且暴露源码

在生产环境下,如果想在定位报错行数的同时,展示具体报错的源码。此时可以将devtool的值设置为source-map。实际效果如图所示:

6.5 Source Map的最佳实践

开发环境下:

建议把devtool的值设置为eval-source-map

好处:可以精准定位到具体的错误行

生产环境下:

建议关闭Source Map 或将devtool的值设置为nosources-source-map

好处:防止源码泄露,提高网站的安全性

下一篇

webpack ---- 配置完成后的package.json与webpack.config.js & 使用@代替./ …/

相关文章
|
7月前
|
JavaScript
webpack-devtool选项 --生成source-map便于开发调试(二)
webpack-devtool选项 --生成source-map便于开发调试(二)
232 0
|
监控 JavaScript 前端开发
webpack进阶篇(十九):使⽤ source map
webpack进阶篇(十九):使⽤ source map
143 0
webpack进阶篇(十九):使⽤ source map
webpack学习笔记(三) source map
webpack学习笔记(三) source map
85 0
|
Web App开发 前端开发 JavaScript
前端工程化探究--source map
本文适合有 webpack 基础的小伙伴进阶学习
前端工程化探究--source map
|
Web App开发 JavaScript 前端开发
JavaScript Source Map 简介
为了提高性能,JavaScript通常需要通过压缩和合并之后才能投入生产环境。如果使用CoffeeScript,还需要进行编译。
166 0
JavaScript Source Map 简介
|
监控 JavaScript
Fundebug微信小程序BUG监控服务支持Source Map
摘要: 自动还原真实出错位置,快速修复BUG。 Source Map功能 微信小程序的Source Map功能目前只在 iOS 6.7.2 及以上版本支持。 微信小程序在打包时,会将所有 js 代码打包成一个文件,从而减少体积,加快访问速度。
1511 0
|
Web App开发 JavaScript 前端开发
Source Map入门教程
使用Source Map可以还原压缩代码。
1965 0
|
JavaScript 前端开发 开发者
Fundebug支持通过Source Map还原错误栈(stacktrace)
Fundebug支持使用Source Map还原真正的错误位置。这样的话,开发者能够迅速定位出错的源代码。另外,Fundebug还能够展示出错的代码块,帮助开发者更快地解决问题。
1037 0
|
3月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
3月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用