前言
一名前端工程师。今天我要分享的是如何解决打包部署之后,应用却没及时更新的缓存问题?在日常工作中,测试经常对开发说的一句话就是:“你有没有打包发版本?为啥还是上一次的版本?”而开发对测试经常说的一句话就是“你刷新一下!!!”
为什么要刷新一下?应用部署后,为了防止客户端反复请求资源,服务器都会设置缓存,来减少带宽流量压力。但是设置缓存之后就会导致我们刚刚谈到的问题,当我们进行打包部署之后,应用却没有及时更新,那怎么办呢?我们的需求是:每次打包,如果代码没有发生变更,就使用缓存。如果发生了变更,就不使用缓存。
那我们该怎么做呢?
如何解决缓存问题?
我们如何解决以上的需求呢?其实我们可以在打包后的文件名去做手脚,每次打包生成和上一次不同的文件名,全新的文件名就代表全新的请求,自然不会有缓存问题,因为在此之前,你还从来没有请过该资源,自然就不会有缓存问题呢?
webpack输出文件名hash
为了解决缓存问题,在生产环境下,我们可以对文件名中添加hash值,当文件发生改变,文件名称也会跟着改变。webpack支持三种hash,效果有所不同。
- 项目级别hash
filename: "[name].[hash]_bundle.js", //打包后文件名
直接使用方括号hash值&#