webpack中的source-map

413 阅读1分钟

source map 方便我们在日常开发中的调试,映射转换后的代码和源代码的关系。

使用

在webpack打包配置文件中,如webpack.config.js中加入配置:

devtool: 'source-map'

webpack官网对于devtool的介绍:webpack.js.org/configurati…

不同模式下的对比

字段介绍:

  • source-map:生成.map文件用于映射
  • eval: 使用eval函数执行代码,速度快,性能好
  • cheap:Source Map 是否包含列信息,大幅度提高sourcemap效率
  • module:是否是loader处理之前的模块源代码
  • inline:用dataUrl的方法把映射的代码引入到生成的代码中,体积增大
  • nosource:有错误提示信息,没有源代码,生成环境不会暴露源代码

推荐使用

开发模式

cheap-module-eval-source-map

  • 定位到行,足够使用
  • 代码经过loader转换过后的差异较大,所以加上module
  • 首次打包速度慢,热更新时相对较快
生产模式

none 或者 nosources-source-map 不用sourcemap或经发现错误即可,减少暴露源代码

对比小案例

可以亲身感受一下不同模式带来的sourcemap效果

'eval',
'eval-source-map',
'cheap-source-map',
'cheap-module-source-map',
'inline-cheap-source-map',
'inline-cheap-module-source-map',
'source-map',
'inline-source-map',
'hidden-source-map',
'nosources-source-map'

github地址:github.com/hzc168/webp…