哈希名解决客户端缓存问题

117 阅读1分钟

我们想要实现的效果:如果一个打包文件进行修改后,会重新缓存。

如果只是通过设置,重新缓存的间隔时间,是不好解决的:

  • 设置时间过短----缓存带来的性能优化的效果就不明显了
  • 设置时间过长----如果项目更新了,也不能及时缓存到最新的结果

此时,用哈希值给文件命名的好处就彰显出来了:

哈希值会随着,文件的改变而发生改变,而全新的文件名就是全新的请求!!

三种哈希方式:

hash: 【项目级别的】

只要有一个文件内容发生改变,那么整个项目打包输出的文件名里的哈希值都会发生改变!!

chunkhash: 【chunk级别的】

哪个 chunk 里的文件发生改变,哪个 chunk 打包输出的所有文件名里的哈希值都会跟着改变!!(包括受影响的其他文件,eg:引入了该 chunk 的)

contenthash: 【文件级别的】

哪个文件的内容改变,就只有哪个文件名里的哈希值改变(包括受影响的其他文件,eg:引入了该文件的)