[fix]修复版本号生成可能为undefind的bug&开发环境版本不进行版本校验代码不生效bug
Signed-off-by: vFeng <1914007838@qq.com>
This commit is contained in:
@@ -1,55 +1,58 @@
|
|||||||
import axios from "axios";
|
import axios from 'axios';
|
||||||
import * as process from "process";
|
import * as process from 'process';
|
||||||
import {Local, Session} from '/@/utils/storage';
|
import { Local, Session } from '/@/utils/storage';
|
||||||
import {ElNotification} from "element-plus";
|
import { ElNotification } from 'element-plus';
|
||||||
import fs from "fs";
|
import fs from 'fs';
|
||||||
|
|
||||||
// 是否显示升级提示信息框
|
// 是否显示升级提示信息框
|
||||||
const IS_SHOW_UPGRADE_SESSION_KEY = 'isShowUpgrade';
|
const IS_SHOW_UPGRADE_SESSION_KEY = 'isShowUpgrade';
|
||||||
const VERSION_KEY = 'DVADMIN3_VERSION'
|
const VERSION_KEY = 'DVADMIN3_VERSION';
|
||||||
const VERSION_FILE_NAME = 'version-build'
|
const VERSION_FILE_NAME = 'version-build';
|
||||||
|
|
||||||
export function showUpgrade () {
|
const META_ENV = import.meta.env;
|
||||||
const isShowUpgrade = Session.get(IS_SHOW_UPGRADE_SESSION_KEY) ?? false
|
|
||||||
if (isShowUpgrade) {
|
export function showUpgrade() {
|
||||||
Session.remove(IS_SHOW_UPGRADE_SESSION_KEY)
|
const isShowUpgrade = Session.get(IS_SHOW_UPGRADE_SESSION_KEY) ?? false;
|
||||||
ElNotification({
|
if (isShowUpgrade) {
|
||||||
title: '新版本升级',
|
Session.remove(IS_SHOW_UPGRADE_SESSION_KEY);
|
||||||
message: "检测到系统新版本,正在更新中!不用担心,更新很快的哦!",
|
ElNotification({
|
||||||
type: 'success',
|
title: '新版本升级',
|
||||||
duration: 5000,
|
message: '检测到系统新版本,正在更新中!不用担心,更新很快的哦!',
|
||||||
});
|
type: 'success',
|
||||||
}
|
duration: 5000,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 生产环境前端版本校验,
|
// 生产环境前端版本校验,
|
||||||
export async function checkVersion(){
|
export async function checkVersion() {
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (META_ENV.NODE_ENV === 'development') {
|
||||||
// 开发环境无需校验前端版本
|
// 开发环境无需校验前端版本
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
// 获取线上版本号 t为时间戳,防止缓存
|
// 获取线上版本号 t为时间戳,防止缓存
|
||||||
await axios.get(`${import.meta.env.VITE_PUBLIC_PATH}${VERSION_FILE_NAME}?t=${new Date().getTime()}`).then(res => {
|
await axios.get(`${META_ENV.VITE_PUBLIC_PATH}${VERSION_FILE_NAME}?t=${new Date().getTime()}`).then((res) => {
|
||||||
const {status, data} = res || {}
|
const { status, data } = res || {};
|
||||||
if (status === 200) {
|
if (status === 200) {
|
||||||
// 获取当前版本号
|
// 获取当前版本号
|
||||||
const localVersion = Local.get(VERSION_KEY)
|
const localVersion = Local.get(VERSION_KEY);
|
||||||
// 将当前版本号持久缓存至本地
|
// 将当前版本号持久缓存至本地
|
||||||
Local.set(VERSION_KEY, data)
|
Local.set(VERSION_KEY, data);
|
||||||
// 当用户本地存在版本号并且和线上版本号不一致时,进行页面刷新操作
|
// 当用户本地存在版本号并且和线上版本号不一致时,进行页面刷新操作
|
||||||
if (localVersion && localVersion !== data) {
|
if (localVersion && localVersion !== data) {
|
||||||
// 本地缓存版本号和线上版本号不一致,弹出升级提示框
|
// 本地缓存版本号和线上版本号不一致,弹出升级提示框
|
||||||
// 此处无法直接使用消息框进行提醒,因为 window.location.reload()会导致消息框消失,将在loading页面判断是否需要显示升级提示框
|
// 此处无法直接使用消息框进行提醒,因为 window.location.reload()会导致消息框消失,将在loading页面判断是否需要显示升级提示框
|
||||||
Session.set(IS_SHOW_UPGRADE_SESSION_KEY, true)
|
Session.set(IS_SHOW_UPGRADE_SESSION_KEY, true);
|
||||||
window.location.reload()
|
window.location.reload();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function generateVersionFile (){
|
export function generateVersionFile() {
|
||||||
// 生成版本文件到public目录下version文件中
|
// 生成版本文件到public目录下version文件中
|
||||||
const version = `${process.env.npm_package_version}.${new Date().getTime()}`;
|
const package_version = META_ENV?.npm_package_version ?? process.env?.npm_package_version;
|
||||||
fs.writeFileSync(`public/${VERSION_FILE_NAME}`, version);
|
|
||||||
|
const version = `${package_version}.${new Date().getTime()}`;
|
||||||
|
fs.writeFileSync(`public/${VERSION_FILE_NAME}`, version);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user