webpack 使用 source-map


作者:Seiya

时间:2019年07月16日


source map 的意义


简单说,Source map 就是一个信息文件,里面储存着位置信息。也就是说,转换后的代码的每一个位置,所对应的转换前的位置。

有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码。


TIP

更多关于 source-map 的介绍,可以参考阮一峰老师的《JavaScript Source Map 详解》一文。



使⽤ source map


开发环境开启,线上环境关闭,如果需要在线上使用时,可以在排查问题的时候将 sourcemap 上传到错误监控系统。



source map 关键字


  • eval: 使用 eval 包裹模块代码;

  • source map: 产⽣ .map 文件;

  • cheap: 不包含列信息;

  • inline: 将 .map 作为 DataURI 嵌入,不单独生成 .map 文件;

  • module:包含 loader 的 source-map;



source map 类型




开启 source map


可以通过 webpack 中的 devtool 参数进行配置,不同的值会明显影响到构建( build )和重新构建( rebuild )的速度。

module.exports = {
	...
	/* 此选项控制是否生成,以及如何生成 source map */
	devtool: 'eval'
}

基本上开发环境直接用 source-map 这个类型。production 环境就把 source-map 添加到 Error Reporting Tool(e.g. Sentry)上。这样既不直接暴露源代码,也能方便解决 production 环境遇到的 bug。


提示:

更多关于 devtool 的配置可以参考官方介绍:devtool

最后更新时间: 2019-7-16 15:19:18