Hash、ContentHash、Chunkhash
Hash
Hash是项目级别的,只要项目下有文件发生改动,那么所有设置了hash的文件hash值都会发生改变。
ContentHash
Contenthash,根据文件的内容生成 hash 值,一般用在静态资源上,如图片等。
Chunkhash
Chunkhash是针对entry的每一个入口文件,独立的hash。如果entry里面的其中一个文件内容改变,只会改变这个入口文件的hash值,不会影响其他入口文件的hash值。
总结
- 开发环境:使用
Hash
- 每次构建,webpack 都会生成一个唯一的 hash 值
- 问题:如果修改了文件,那么 hash 值也会改变,导致所有缓存失效
- 生产环境:使用
Chunkhash
- 根据 chunk 生成的 hash 值
- 问题:如果修改了文件,那么 hash 值也会改变,导致所有缓存失效