我们想要实现的效果:如果一个打包文件进行修改后,会重新缓存。
如果只是通过设置,重新缓存的间隔时间,是不好解决的:
- 设置时间过短----缓存带来的性能优化的效果就不明显了
- 设置时间过长----如果项目更新了,也不能及时缓存到最新的结果
此时,用哈希值给文件命名的好处就彰显出来了:
哈希值会随着,文件的改变而发生改变,而全新的文件名就是全新的请求!!
三种哈希方式:
hash: 【项目级别的】
只要有一个文件内容发生改变,那么整个项目打包输出的文件名里的哈希值都会发生改变!!
chunkhash: 【chunk级别的】
哪个 chunk 里的文件发生改变,哪个 chunk 打包输出的所有文件名里的哈希值都会跟着改变!!(包括受影响的其他文件,eg:引入了该 chunk 的)
contenthash: 【文件级别的】
哪个文件的内容改变,就只有哪个文件名里的哈希值改变(包括受影响的其他文件,eg:引入了该文件的)