webpack学习笔记-提高开发体验

74 阅读1分钟

高级SourceMap

开发时我们运行的代码是经过webpack编译后的代码,例如:

image.png

如果碰见代码报错

image.png

image.png 我们在浏览器看到的错误是在webpack编译后展示的错误,如果以后项目非常庞大,不便于我们查找错误。我们希望这个错误体现在源代码的位置,这样我们可以快速解决问题。

这个时候我们就可以用到SourceMap

SourceMap(源代码映射) 是一个用来生成源代码与构建后代码一一映射的文件的方案。

他会生成一个XXX.map文件,里面包含源代码和构建后代码每一行的映射关系。当构建后代码出错了,会通过xxx.map文件,从构建后代码出错的位置找到映射后源代码出错的位置。从而让浏览器提示源代码文件出错的位置,帮助我们快速找到错误根源。

通过查看 webpackDevtool文档可知,SourceMap的值有多种情况, 但实际开发时我们只需要关注两种情况即可:

源文件

image.png

  • 开发模式:cheap-module-source-map

    • 优点:打包编译速度快,只包含映射
    • 缺点:没有列映射

webpack.dev.js

image.png

运行情况

错误提示只包含行

image.png

image.png

  • 生产模式: source-map
    • 优点:包含行/列映射
    • 缺点:打包速度慢

webpack.prod.js

image.png

运行情况

错误是包含行和列的(3:5)

image.png

image.png

hot

启用 webpack 的热模块替换特性:

webpack.config.js或者webpack.dev.js

module.exports={
  devServer:{
    hot: true
  }
}

Tip: 从webpack-dev-server v4开始,HMR是默认启动的。它会自动应用 webpack.HotModuleReplacementPlugin,这是启用HMR必须的。