美文网首页
vue 项目检测是否发版更新

vue 项目检测是否发版更新

作者: VioletJack | 来源:发表于2023-03-02 08:26 被阅读0次

需求

在用户使用系统的时候,前端进行了发布更新。如何通知用户去手动刷新。

获取 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

相关文章

网友评论

      本文标题:vue 项目检测是否发版更新

      本文链接:https://www.haomeiwen.com/subject/wlllldtx.html