在阅读了Webpack
中的以下三种哈希策略之后:
Hash
- 由构建本身决定。所有块都有相同的哈希值。Chunkhash
- 由条目文件确定,并将确定来自具有相同散列的该条目的任何其他块。Contenthash
- 由块的内容决定(在计算哈希时留下我们的元数据)。我唯一的结论是前两个哈希策略将导致客户端多次下载未更改的块。
你能解释为什么前两个哈希策略会在过去一次为客户端带来更好的性能吗?
缓存作为对象工作,当下载文件时,浏览器会检查它是否已经有任何相同名称的文件。
现在,你有点回答了你的问题。当您使用前两个策略生成构建,发布它们,然后去修改其内容,再次发布,即使您进行了一次修改,用户也会再次下载eveything。
当您使用contenthash时,将根据该块的内容确定散列,因此,如果您进行了任何修改,用户只需要下载新文件,而只需要修改那些不是整个捆绑包的文件。