webpack中hash、chunkhash、contenthash区别

本文深入探讨了hash、chunkhash及contenthash三种哈希策略的区别与应用场景。hash每次构建后生成的值不同,导致文件缓存易失效;chunkhash依据入口文件生成哈希,利于公共库打包;contenthash则按文件内容生成哈希,仅当内容变动时更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hash

每一次构建后生成的哈希值都不一样,即使文件内容压根没有改变。
问题: 一旦修改了任何一个文件,整个项目的文件缓存都将失效。

chunkhash

chunkhash根据不同的入口文件(Entry)进行依赖文件解析、构建对应的chunk,生成对应的哈希值。
在生产环境里把一些公共库和程序入口文件区分开,单独打包构建,接着我们采用chunkhash的方式生成哈希值,那么只要我们不改动公共库的代码,就可以保证其哈希值不会受影响。
问题: 例如index.css被index.js引用了,所以共用相同的chunkhash值。如果index.js更改了代码,css文件就算内容没有任何改变,由于是该模块发生了改变,导致css文件会重复构建。

contenthash

contenthash是针对文件内容级别的,只有模块的内容变了,hash值才改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值