Skip to content

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 值也会改变,导致所有缓存失效