Prechádzať zdrojové kódy

feat: 优化版本获取,在打包之后修改文件内容,避免造成文件修改

yanglzh 1 rok pred
rodič
commit
6ee81147d3
5 zmenil súbory, kde vykonal 26 pridanie a 17 odobranie
  1. 1 2
      getVersion.mjs
  2. 4 4
      package.json
  3. 0 5
      public/version.json
  4. 5 0
      public/versionInfo.json
  5. 16 6
      src/views/login/index.vue

+ 1 - 2
getVersion.mjs

@@ -1,10 +1,9 @@
 import dayjs from 'dayjs'
 import { exec } from 'child_process'
-import semver from 'semver'
 
 import { readFileSync, writeFileSync } from 'fs'
 
-const versionFile = './public/version.json'
+const versionFile = './dist/versionInfo.json'
 
 main()
 

+ 4 - 4
package.json

@@ -6,10 +6,10 @@
   "license": "MIT",
   "scripts": {
     "dev": "vite --force",
-    "build": "npm run getVersion && vite build",
-    "build:golocal": "vite build --mode golocal",
-    "build:open": "npm run getVersion && vite build --mode open",
-    "build:test": "vite build --mode test",
+    "build": "vite build && npm run getVersion",
+    "build:golocal": "vite build --mode golocal && npm run getVersion",
+    "build:open": "vite build --mode open && npm run getVersion",
+    "build:test": "vite build --mode test && npm run getVersion",
     "deploy:zip": "npm run build && npm run zipAndUpload && npm run unzip && npm run success",
     "zipAndUpload": "cd dist && rm -rf zhgy.sagoo.cn.zip && zip -r -q zhgy.sagoo.cn.zip ./ && ssh iot 'sudo rm /www/wwwroot/zhgy.sagoo.cn-old.zip' | ssh iot 'sudo mv /www/wwwroot/zhgy.sagoo.cn.zip /www/wwwroot/zhgy.sagoo.cn-old.zip' | scp -r -O zhgy.sagoo.cn.zip iot:/www/wwwroot",
     "unzip": "ssh iot 'cd /www/wwwroot/ && sudo unzip -q -o -d ./zhgy.sagoo.cn zhgy.sagoo.cn.zip'",

+ 0 - 5
public/version.json

@@ -1,5 +0,0 @@
-{
-  "version": "v2.1.1",
-  "updateTime": "2024-05-20 22:05:42",
-  "hash": "2074c9f3cb11143afdae7b3e27b679147eff9b41"
-}

+ 5 - 0
public/versionInfo.json

@@ -0,0 +1,5 @@
+{
+	"version": "",
+	"updateTime": "",
+	"hash": ""
+}

+ 16 - 6
src/views/login/index.vue

@@ -7,12 +7,11 @@
 				{{ sysinfo.systemName }}
 			</div>
 			<el-image class="img" :src="sysinfo.systemLoginPIC" />
-			<span class="text" v-if="sysinfo.buildTime">{{ sysinfo.buildVersion }} </span>
+			<span class="text" v-if="sysinfo.buildTime">服务端版本:{{ sysinfo.buildVersion }} </span>
 			<span class="text" v-if="sysinfo.buildTime">{{ dayjs(sysinfo.buildTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
 			<br />
-			<span class="text" v-if="packageInfo">前端版本:</span>
-			<span class="text" v-if="packageInfo">{{ packageInfo.version }} </span>
-			<span class="text" v-if="packageInfo">{{ packageInfo.updateTime }}</span>
+			<span class="text" v-if="versionInfo.version">前端版本:{{ versionInfo.version }} </span>
+			<span class="text" v-if="versionInfo.updateTime">{{ versionInfo.updateTime }}</span>
 		</div>
 		<div class="part">
 			<div class="title">登录</div>
@@ -29,7 +28,8 @@ import logoMini from '/imgs/logo.png';
 import { Sunny, Moon } from '@element-plus/icons-vue';
 import dayjs from 'dayjs';
 import api from '/@/api/system';
-import PackageJson from '/public/version.json';
+import axios from 'axios';
+// import PackageJson from '/public/version.json';
 // 定义接口来定义对象的类型
 interface LoginState {
 	tabsActiveName: string;
@@ -74,6 +74,16 @@ export default defineComponent({
 			return store.state.themeConfig.themeConfig;
 		});
 
+		const versionInfo = reactive({
+			version:'',
+			updateTime:'',
+		})
+		// 加载版本信息
+		axios.get('/versionInfo.json').then(res => {
+			versionInfo.version = res.data.version
+			versionInfo.updateTime = res.data.updateTime
+		})
+
 		// 4、界面显示 --> 深色模式
 		const onAddDarkChange = () => {
 			const body = document.documentElement as HTMLElement;
@@ -90,7 +100,7 @@ export default defineComponent({
 			onAddDarkChange,
 			logoMini,
 			getThemeConfig,
-			packageInfo: PackageJson,
+			versionInfo,
 			...toRefs(state),
 		};
 	},