version-rocket使用记录

880 阅读3分钟

version-rocket的使用场景:

用户在浏览器中打开某 web 应用很长时间且未刷新页面, 在应用有新版本更新或问题修复时, 用户会无法及时知晓有新版发布, 导致用户继续使用旧的版本, 影响用户体验和后端数据准确性。

当然,也有更高级的场景,可以通过底部链接进到官网了解和学习。

此处使用插件实现的主要功能就是通过页面右下角弹窗的形式,提醒到用户应用有更新,可以通过刷新体验新功能。

插件是通过线上原有版本号与部署新应用的版本号进行对比,两次版本号不同,则判定有应用有更新,从而实现提醒。

以下是我使用时的一些步骤(仅供参考):

1、安装

// npm npm install version-rocket --save

// yarn yarn add version-rocket

# pnpm pnpm install version-rocket

2、app.vue中导入checkVersion、uncheckVersion并调用

import { checkVersion } from 'version-rocket'
// 推荐使用 package.json 中的 version 字段, 也可自定义 version
import { version } from '../package.json'
// 在生命周期中进行调用
mounted() {
  // 开启版本检测
  checkVersion({
    localPackageVersion: version,
    originVersionFileUrl: `${location.origin}/shca/version.json`,
  })
},

destroyed() {
  // 终止版本检测
  unCheckVersion({closeDialog: false})
}

3、在package.json中,新增一条script脚本命令,新命令中的dist目录可以根据实际项目打包outputDir来修改

{
  "name": "test",
  "description": "test",
  "private": true, "version": "0.0.1",
  "scripts": {
    ...
    // 新增script命令
    "generate:version": "generate-version-file dist public"
    ...
   },
 ... }

4、正常运行打包命令后运行npm run generate:version;

【这一步也可以和打包命令合并成一个命令,新命令中的dist目录可以根据实际项目打包outputDir来修改】

// package.json---->script
// 原本打包命令
"build": "vue-cli-service build",
// 合并后的打包命令
"build": "vue-cli-service build && generate-version-file dist public",

5、部署新老版本后进行测试。

其他:在运行checkVersion时,可以传入第二个options的参数调整一些个性化设置,例如弹窗标题、内容、按钮文案、图片内容等

参数类型描述默认值必需
optionsobject弹窗文案和主题的配置项 (不自定义弹窗 UI, 但有修改文案和主题的需求时使用)
options.titlestring弹窗的标题Update
options.descriptionstring弹窗的描述V xxx is available
options.buttonTextstring弹窗按钮的文案Refresh
options.cancelButtonTextstring关闭弹窗按钮的文案 (如果你希望弹窗允许被关闭, 请添加此选项) v1.5.0
options.cancelModeignore-current-version (当前版本不再提示) / ignore-today (今天不再提示) / ignore-current-window (当前窗口不再提示)关闭弹窗的模式 (当 cancelButtonText 设置后生效) v1.5.0ignore-current-version
options.cancelUpdateAndStopWorkerboolean关闭弹窗时, 也关闭 worker (当 cancelButtonText 设置后生效) v1.5.0false
options.imageUrlstring弹窗的提示图片
options.rocketColorstring弹窗提示图片中火箭的主题色, 设置后 options.imageUrl 无效
options.primaryColorstring弹窗的主题色, 会作用到提示图片背景色和按钮背景色, 设置后 imageUrl 无效
options.buttonStylestring弹窗按钮的 css 配置, 可以覆盖掉默认的按钮样式

ps->官方文档地址:github.com/guMcrey/ver…