From 4cf59870ead693e32f5420075d83650443050d59 Mon Sep 17 00:00:00 2001 From: liwei Date: Fri, 11 Jun 2021 10:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=88=E6=9C=AC=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 ++-- version.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ version.txt | 6 ++++++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 version.js create mode 100644 version.txt diff --git a/package.json b/package.json index cfdb448..c790535 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "license": "MIT", "scripts": { "dev": "vue-cli-service serve --open", - "build:prod": "vue-cli-service build", - "build:stage": "vue-cli-service build --mode staging", + "build:prod": "vue-cli-service build --mode production --dest dist&&node version.js", + "build:stage": "vue-cli-service build --mode staging --dest dist&&node version.js", "preview": "node build/index.js --preview", "lint": "eslint --ext .js,.vue src", "test:unit": "jest --clearCache && vue-cli-service test:unit", diff --git a/version.js b/version.js new file mode 100644 index 0000000..81fce32 --- /dev/null +++ b/version.js @@ -0,0 +1,48 @@ +/**定义模块和变量**/ +const exec = require('child_process').exec; //异步子进程 +const execSync = require('child_process').execSync; //同步子进程 +const fs = require('fs'); //文件读取模块 +const versionPath = 'version.txt'; //version路径 +const buildPath = 'dist'; //打包的路径 +const autoPush = true; //写入版本信息之后是否自动提交git上 +const commit = execSync('git show -s --format=%H').toString().trim(); //当前提交的版本号 + +/**程序开始**/ +var versionStr = ""; //版本信息字符串 + +// 如果versionPath存在,将先读取里边的版本信息 +if (fs.existsSync(versionPath)) { + versionStr = fs.readFileSync(versionPath).toString() + '\n'; +} + +// 根据版本信息是已存在commit,进行不同处理 +if (versionStr.indexOf(commit) != -1) { + console.warn('\x1B[33m%s\x1b[0m', 'warming: 当前的git版本数据已经存在了!\n') +} else { + let name = execSync('git show -s --format=%cn').toString().trim(); //姓名 + let email = execSync('git show -s --format=%ce').toString().trim(); //邮箱 + let date = new Date(execSync('git show -s --format=%cd').toString()); //日期 + let message = execSync('git show -s --format=%s').toString().trim(); //说明 + versionStr = `git:${commit}\n作者:${name}<${email}>\n日期:${date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+' '+date.getHours()+':'+date.getMinutes()}\n说明:${message}\n${new Array(80).join('*')}\n${versionStr}`; + fs.writeFileSync(versionPath, versionStr); + // 写入版本信息之后,自动将版本信息提交到当前分支的git上 + if (autoPush) { + execSync(`git commit ${versionPath} -m 自动提交版本信息`); + execSync(`git push origin ${execSync('git rev-parse --abbrev-ref HEAD').toString().trim()}`); + } +} + +// 将version文件移植到打包文件中 +if (fs.existsSync(buildPath)) { + fs.writeFileSync(`${buildPath}/${versionPath}`, fs.readFileSync(versionPath)); +} + +// 程序执行结束 +console.info('\x1B[32m%s\x1b[0m', [ + "██████╗ ███████╗██████╗ ███████╗ █████╗ ██████╗██╗ ██╗", + "██╔══██╗██╔════╝██╔══██╗██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝", + "██████╔╝█████╗ ██████╔╝███████╗███████║██║ ███╗╚████╔╝ ", + "██╔═══╝ ██╔══╝ ██╔══██╗╚════██║██╔══██║██║ ██║ ╚██╔╝ ", + "██║ ███████╗██║ ██║███████║██║ ██║╚██████╔╝ ██║ ", + "╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ", +].join('\n')); \ No newline at end of file diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..bfe93b5 --- /dev/null +++ b/version.txt @@ -0,0 +1,6 @@ +git:1a68481bc33098f2a7f571c0730cb462c6a02ca3 +作者:Liwei +日期:2021-6-7 9:53 +说明:Merge pull request '修改甘特图样式' (#68) from feature_supplier into develop +******************************************************************************* +