Webpack中hash、chunkhash和contenthash三者的区别
2024-08-28 18:53:39
在webpack中有三种的方式生成哈希值,分别为hash
、chunkhash
和contenthash
。这三种方式有着不同的用处,或者说在webpack的不同环境中,会使用不同的方式生成哈希值。那为什么要这样的一个区分呢?我们一起探讨下:
hash
主要用于webpack
的开发环境,在项目构建编译中根据文件是否更改,生成一个统一的hash
值。就是说只要构建编译过程中只要一个文件修改了,则整个项目的hash
值都会统一改变(整个项目的hash
值是一样的)。这样一来在每次的开发中,文件都不会让浏览器器缓存,保证了文件的更新率,提高了开发过程中的效率。
chunkhash
用于webpack
的生产环境,从字面上就能猜出它是跟webpack
打包的chunk
相关的。具体来说webpack
是根据入口entry
配置文件来分析其依赖项并由此来构建该entry
的chunk
,并生成对应的hash
值。不同的chunk
会有不同的hash
值。
在生产环境中,我们会把第三方或者公用类库进行单独打包,所以不改动公共库的代码,该chunk
的hash
就不会变,可以合理的使用浏览器缓存了。
但是生产环境中我们会用webpack
的插件,将css
代码打单独提取出来打包。这时候chunkhash
的方式就不够灵活,因为只要同一个chunk
里面的js
修改后,css
的chunk
的hash
也会跟随着改动。因此我们需要contenthash
。
contenthash
contenthash
表示由文件内容产生的hash
值,内容不同产生的contenthash
值也不一样。生产环境中,通常做法是把项目中css
都抽离出对应的css
文件来加以引用。
最新文章
- winform项目打包成可安装程序(vs2015)
- 将Jquery序列化后的表单值转换成Json
- No resource found that matches the given name 'android:Widget.Material.A解决方案
- [转] EJB到底是什么,真的那么神秘吗??
- [Admin]CCTV文件分类
- PHP XDEBUG
- Scrapy学习教程
- CentOS 7 最小化安装之后安装Mysql
- 【css】web标准
- oracle查询最占用资源的查询
- 《实验数据的结构化程序设计》 2.4.4Calendar个人意见,寻求指引
- Worker+MQ解惑
- ecma6的学习好网站
- 2018(上)C高级第0次作业
- python if判断语句&;计算
- PHP通过经纬坐标计算两个地址的距离
- 【map】p1184 高手之在一起
- C#学习笔记(35)——事件做的登录案例
- Vue常见指令
- .NET Core 管道过滤器扩展
热门文章
- 解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题
- moco响应中文乱码
- POJ Expanding Rods
- 第二次团队作业-需求分析(By七个小矮人)
- e.detail.value 获取input的值
- 理解numpy中ndarray的内存布局和设计哲学
- 《快乐编程大本营》java语言训练班 3课:java的运算符
- ros机器人之小乌龟仿真-路径记录
- 项目架构级别规约框架Archunit调研
- 利用Atomic, ThreadLocal, 模仿AQS, ReentrantLock