概述
在 Webpack 中,Hash 码主要用来缓存控制,确保每次修改文件后生成的文件名是唯一的,从而避免缓存问题。Webpack 在打包过程中,通过对文件内容进行哈希运算来生成 Hash 码,具体方式主要有三种:hash
、chunkhash
和 contenthash
。
1)hash
:Webpack 会针对整个项目构建生成一个唯一的 Hash 码,只要项目中有任何一个文件变化,生成的 Hash 码都会改变。
2)chunkhash
:Webpack 为每个 chunk 生成一个 Hash 码,只有当该 chunk 内容发生变化时,对应的 Hash 码才会改变。这在分离文件的情况下更为有效,减小了很多无关文件的缓存更改。
3)contenthash
:Webpack 根据文件内容生成一个 Hash 码,只有文件自身内容变化时才会改变 Hash 码,这是最精准的缓存控制方式。
避免 Hash 码重复的主要方式是通过合理使用这三种哈希类型,通常用于最终输出的文件。