1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* eslint-disable @typescript-eslint/no-var-requires */
- /** 自动记录版本信息**/
- const fs = require('fs')
- const buildPath = 'dist/' + require('./package.json').name// 放置 version.txt的路径
- const execSync = require('child_process').execSync // 同步子进程
- const date = new Date() // Date对象
- const isZip = true // 是否自动压缩(需要安装compressing模块)
- // 获取时间函数
- const getDate = (df, tf) => {
- const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); const hour = date.getHours(); const minute = date.getMinutes()
- const dArr = [year, month > 9 ? month : `0${month}`, day > 9 ? day : `0${day}`]
- const tArr = [hour > 9 ? hour : `0${hour}`, minute > 9 ? minute : `0${minute}`]
- return `${dArr.join(df)}${tf ? ' ' : ''}${tArr.join(tf)}`
- }
- // 写入最新的版本信息
- const branch = execSync('git symbolic-ref --short -q HEAD').toString().trim() // 分支
- const commit = execSync('git show -s --format=%h').toString().trim() // 版本号
- const message = execSync('git show -s --format=%s').toString().trim() // 说明
- const name = execSync('git show -s --format=%cn').toString().trim() // 姓名
- const email = execSync('git show -s --format=%ce').toString().trim() // 邮箱
- // const date = execSync('git show -s --format=%cd').toString().trim(); //日期
- const versionStr = `git:${commit}<${branch}>\n作者:${name}<${email}>\n日期:${getDate('-', ':')}\n说明:${message}\n`
- fs.writeFile(`${buildPath}/version.txt`, versionStr, (err) => {
- if (err) console.err('写入失败', err)
- })
- // 打包文件命名
- const distName = `${buildPath}_${getDate('', '')}_git_${commit}`
- // 压缩文件
- if (isZip) {
- try {
- const compressing = require('compressing') // 压缩模块
- compressing.zip.compressDir(buildPath, `${distName}.zip`).then(() => {
- console.info('\x1B[32m%s\x1b[0m', '压缩成功!')
- }).catch(err => {
- console.error(err)
- })
- } catch {
- console.error('压缩失败!')
- }
- }
- // 程序运行结束
- console.info('\x1B[32m%s\x1b[0m', [
- distName,
- versionStr,
- '██████╗ ███████╗██████╗ ███████╗ █████╗ ██████╗██╗ ██╗',
- '██╔══██╗██╔════╝██╔══██╗██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝',
- '██████╔╝█████╗ ██████╔╝███████╗███████║██║ ███╗╚████╔╝ ',
- '██╔═══╝ ██╔══╝ ██╔══██╗╚════██║██╔══██║██║ ██║ ╚██╔╝ ',
- '██║ ███████╗██║ ██║███████║██║ ██║╚██████╔╝ ██║ ',
- '╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ '
- ].join('\n'))
|