Prechádzať zdrojové kódy

feat: 增加前端版本获取

yanglzh 1 rok pred
rodič
commit
ee13bee50e
4 zmenil súbory, kde vykonal 87 pridanie a 18 odobranie
  1. 65 0
      getVersion.mjs
  2. 3 2
      package.json
  3. 2 1
      public/version.json
  4. 17 15
      updateVersion.mjs

+ 65 - 0
getVersion.mjs

@@ -0,0 +1,65 @@
+import dayjs from 'dayjs'
+import { exec } from 'child_process'
+import semver from 'semver'
+
+import { readFileSync, writeFileSync } from 'fs'
+
+const versionFile = './public/version.json'
+
+main()
+
+/**
+ * 写入json文件
+ * @param {*} version
+ * @param {*} fileDirName
+ */
+function writeJson(version, fileDirName) {
+	try {
+		writeFileSync(fileDirName, JSON.stringify(version, null, 2), { flag: 'w+', encoding: 'utf-8' })
+		console.log(`-> 写入 ${fileDirName} 成功`)
+	} catch (err) {
+		console.error(`-> 写入 ${fileDirName} 失败: `)
+		console.error(err)
+		throw err
+	}
+}
+
+/**
+ * 获取最新的版本号
+ * @returns
+ */
+function getLatestVersion() {
+	return new Promise((resolve, reject) => {
+		return exec('git describe --abbrev=0 --tags', (err, version) => {
+			if (err) {
+				reject()
+				console.error('获取版本号失败:', err)
+			} else {
+				console.log('最新版本号:', version)
+				exec('git rev-parse HEAD', (err, hash) => {
+					if (err) {
+						reject()
+						console.error('获取版本号失败:', err)
+					} else {
+						console.log('最新HASH:', hash)
+						resolve({ version: version.trim(), hash: hash.trim() })
+					}
+				})
+			}
+		})
+	})
+}
+
+// 主函数
+function main() {
+	getLatestVersion().then(({ version, hash }) => {
+		const content = readFileSync(versionFile, 'utf-8')
+		const packageInfo = JSON.parse(content)
+
+		packageInfo.version = version
+		packageInfo.hash = hash
+		packageInfo.updateTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
+
+		writeJson(packageInfo, versionFile)
+	})
+}

+ 3 - 2
package.json

@@ -6,9 +6,9 @@
   "license": "MIT",
   "scripts": {
     "dev": "vite --force",
-    "build": "vite build",
+    "build": "npm run getVersion && vite build",
     "build:golocal": "vite build --mode golocal",
-    "build:open": "vite build --mode open",
+    "build:open": "npm run getVersion && vite build --mode open",
     "build:test": "vite build --mode test",
     "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",
@@ -19,6 +19,7 @@
     "deploy:scp": "scp -r -O ./dist/* iot:/www/wwwroot/zhgy.sagoo.cn-pre/ && ssh iot 'cd /www/wwwroot/zhgy.sagoo.cn/ && mv `ls | grep -v plugin` ../zhgy.sagoo.cn-copy && mv ../zhgy.sagoo.cn-pre/* ./'",
     "deploy:auth": "ssh iot 'chown -R www /www/wwwroot/zhgy.sagoo.cn/'",
     "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/",
+    "getVersion": "node ./getVersion.mjs",
     "updateVersion:small": "node ./updateVersion.mjs --patch",
     "updateVersion:mid": "node ./updateVersion.mjs --minor",
     "updateVersion:big": "node ./updateVersion.mjs --major"

+ 2 - 1
public/version.json

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

+ 17 - 15
updateVersion.mjs

@@ -11,20 +11,22 @@ const versionFile = './public/version.json'
 // 获取执行的参数
 const args = process.argv.slice(2)
 // console.log(args)
-switch (args[0]) {
-	case '--patch':
-		autoTagVersion('patch')
-		break
-	case '--minor':
-		autoTagVersion('minor')
-		break
-	case '--major':
-		autoTagVersion('major')
-		break
-	default:
-		autoTagVersion('patch')
-		break
-}
+
+// 暂停使用,禁止自动打tag
+// switch (args[0]) {
+// 	case '--patch':
+// 		autoTagVersion('patch')
+// 		break
+// 	case '--minor':
+// 		autoTagVersion('minor')
+// 		break
+// 	case '--major':
+// 		autoTagVersion('major')
+// 		break
+// 	default:
+// 		autoTagVersion('patch')
+// 		break
+// }
 
 /**
  * 自动打标签
@@ -62,7 +64,7 @@ function writeJson(version, fileDirName) {
  */
 function getLatestVersion() {
 	return new Promise((resolve, reject) => {
-		return exec('git describe --tags `git rev-list --tags --max-count=1`', (err, stdout, stderr) => {
+		return exec('git describe --abbrev=0 --tags', (err, stdout, stderr) => {
 			if (err) {
 				reject()
 				console.error('获取版本号失败:', err)