Webpack4中的sourcemap食用指南

1,460 阅读2分钟

官方文档 webpack的官网,给出了十几种sourcemap

官方文档看的如果不是很明白可以看一下这篇博客 Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型,有详细的讲解eval、soure-map、inline、 cheap、module的作用,webpack的官网出了十几种sourcemap基本上就是这几个拼凑在一起的功能

开发环境

官方推荐eval、eval-source-map、cheap-eval-source-map、cheap-module-eval-source-map这四种方式

开发环境中比较推荐cheap-module-eval-source-map的方式,既能够生成准确的便于调试的sourcemap,构建速度也比较快

生成环境

官方推荐none,source-map,hidden-source-map,nosources-source-map这四种方式
none: 就是不生成source map,安全!

source-map: 生成 source map 文件,问题就是不安全,暴露源码,效果如下

因此官方推荐正确的使用方式是

你应该将你的服务器配置为,不允许普通用户访问 source map 文件!

hidden-source-map: 与 source-map 相同,但不会为 bundle 添加引用注释。如果你只想 source map 映射那些源自错误报告的错误堆栈跟踪信息,但不想为浏览器开发工具暴露你的 source map,这个选项会很有用,你不应将 source map 文件部署到 web 服务器。而是只将其用于错误报告工具。其实没太懂,实际使用中和none的效果一样

nosources-source-map: 创建的 source map 不包含sourcesContent(源代码内容)。它可以用来映射客户端上的堆栈跟踪,而无须暴露所有的源代码。你可以将 source map 文件部署到 web 服务器。 这仍然会暴露反编译后的文件名和结构,但它不会暴露原始代码。效果如下

所以总结一下,生成环境中,使用 source-map 并且将你的服务器配置为不允许普通用户访问 source map 文件的食用很舒服,毕竟可以舒服的看到报错信息,如果条件不允许的话使用nosources-source-map也是挺好的,暴露反编译后的文件名和结构影响一般不大