需求
在用户使用系统的时候,前端进行了发布更新。如何通知用户去手动刷新。
获取 webpack 编译时间点
利用 webpack 编译的时间点,保存下编译的时间。
// vue.config.js
require('fs').writeFileSync('public/release-time.txt', `${new Date().getTime()}`)
这里用的 node 的文件系统,创建了一个记录发布时间的文件。在 yarn build
的时候,因为是放在 public 目录下的,所以这个文件会被直接复制到 dist 目录下。
我们可以通过 {rootPath}/release-time.txt
来拿到发布时间。
axios.get('/release-time.txt').then((data) => {
console.log('版本发布时间', data.data)
})
如此就可以获取到最新的版本发布时间了。
版本发布时间 1677642218067
获取 git hash
第一种方式有个缺陷,就是有可能存在一个 git 节点多次发布的情况。这个时候其实用户是不需要刷新页面的。
所以,可以改用 git hash 的方式来解决这个问题。
// vue.config.js
const revision = require('child_process').execSync('git rev-parse HEAD').toString().trim()
require('fs').writeFileSync('public/version.txt', revision)
版本发布哈希 3ecd7cbbb607753a6284e03650dabe67f315e2b4
网友评论