webpack性能优化


webpack性能优化

webpack性能优化主要分为两个方面:

开发环境性能优化

生产环境性能优化


开发环境性能优化

优化打包构建速度

HMR:模块热替换,若一个文件发生改变则只会重新构建该文件而不会整体文件再构建,提高打包构建速度

优化代码调试

source-map:源代码到构建后代码映射的一个技术

inline-source-map,eval-source-map内联 开发常用内联模式

hidden-source-map,nosources隐藏源代码信息 生产多用外联模式

oJrUSO.png


生产环境性能优化

优化打包构建速度

oneOf:

假如配置多个loader时,匹配到对应的loader就不会再进行往下查找,若一个文件需要loader比如eslint和babel,则需要把eslint放在oneof外面

babel缓存:

开启缓存后,运行结果会保存起来,第二次打包会更快一点

多进程打包:

默认是单进程打包,开启多进程打包后可以一次干多种事情

externals:

用cdn

dll:

先把库打包好,在引用

优化代码运行的性能

hash-chunkhash-contenthash

缓存,一旦哈希值变则会重新生成文件,若不变则直接走缓存,hash指的是webpack打包后唯一生成的哈希值,chunkhash指的是若打包是来自于一个入口就等于一个同样的chunk,共享同一个哈希值,content-hash根据文件内容生成hash,若文件内容不变则哈希值不会变

tree-shaking:

去除用户中无用的代码

必须开启ES6模块化

将mode写成production则会默认开启tree-shaking,压缩代码

在package.json可以写sideEffect:[xx],防止删除一些要用的代码

code split:

单页面的js太大进行代码分割

下面为设置的三种方式

  1. 设置多入口

oJRAjf.png

  1. 设置optimization

oJR3vV.png

  1. 通过import语法

oJR2UH.png

在index.js文件设置

image-20211201205333490

lazy-load:

懒加载/预加载(js代码懒加载)

oJWjTe.png

pwa:

离线可访问技术,由serviceworker和cache组成,主要作用在网站离线的时候也可以用,用户体验更好,兼容性问题有点大


文章作者: Daniel Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Daniel Lin !
  目录