如何在新构建反应项目后删除缓存
How to remove cache after a new build react project
当我们在我们的 React 项目中有一个新的构建时,使用我们的 PWA 的用户因为他们有旧的缓存他们不能有我们最后的更改并且他们必须通过按 ctrl[= 删除他们的缓存16=]+F5 重新加载然后我们的更改生效所以我们尝试找到解决问题的最佳方案。
我想在 React 项目的新构建之后删除所有用户的缓存。
我终于为我的项目解决了这个问题。
我在本地存储中定义了一个变量用于版本控制,我在构建后保存了项目版本并检查了第一个反应文件中的版本(例如 Routes.js
中的 componentDidMount()
)如果它们不匹配 运行 下面的代码:
window.location.reload(true);
示例:
componentDidMount(){
let name = 'Project-Name'
let version = '1.0.0'
console.log(`${name} v${version} `)
const last_version = localStorage.getItem(`${name}-Version`)
if(last_version !== version){
console.log('New Version Available ! ')
localStorage.setItem(`${name}-Version`, version)
window.location.reload(true);
}
}
当我们在我们的 React 项目中有一个新的构建时,使用我们的 PWA 的用户因为他们有旧的缓存他们不能有我们最后的更改并且他们必须通过按 ctrl[= 删除他们的缓存16=]+F5 重新加载然后我们的更改生效所以我们尝试找到解决问题的最佳方案。
我想在 React 项目的新构建之后删除所有用户的缓存。
我终于为我的项目解决了这个问题。
我在本地存储中定义了一个变量用于版本控制,我在构建后保存了项目版本并检查了第一个反应文件中的版本(例如 Routes.js
中的 componentDidMount()
)如果它们不匹配 运行 下面的代码:
window.location.reload(true);
示例:
componentDidMount(){
let name = 'Project-Name'
let version = '1.0.0'
console.log(`${name} v${version} `)
const last_version = localStorage.getItem(`${name}-Version`)
if(last_version !== version){
console.log('New Version Available ! ')
localStorage.setItem(`${name}-Version`, version)
window.location.reload(true);
}
}