webpack 设置有几种hash哈希值?有哪些作用??

三种设置的区别

1、Hash

hash是跟整个项目的构建相关,只要项目里有文件更改,整个项目构建的hash值都会更改,并且全部文件都共用相同的hash值

2、chunkhash

chunkhash,它根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值。

简单来说这种是根据不同入口来配置的,比如react,react-router、resux等公共入口文件,只要这些没有改变,那么他对应生成的js的hash值也不会改变。

3、contenthash

contenthash主要是处理关联性,比如一个js文件中引入css,但是会生成一个js文件,一个css文件,

但是因为入口是一个,导致他们的hash值也相同,所以当只有js修改时,关联输出的css、img等文件的hash值也会改变,这种情况下就需要contenthash了。

 

使用哈希值的作用:

1、提升webpack打包速度和项目体积

将webpack入口的chunk文件中所有公共的代码提取出来,减少代码体积;同时提升webpack打包速度。

2、利用缓存机制

依赖的公共模块文件一般很少更改或者不会更改,这样独立模块文件提取出可以长期缓存。

3、利用浏览器缓存

方便我们在改动代码的时候,线上代码发版后及时读取最新的js文件,防止出现缓存问题;

posted @ 2021-02-04 20:45  程序員劝退师  阅读(1525)  评论(0编辑  收藏  举报