思路:编写node脚本,在build打包后,在dist目录下写入一个log.txt日志文件,记录当前打包时的分支名称、作者、最新一次提交信息等。
关键点:
1.在node脚本中调用外部命令git log
2.在build打包完成后执行读写操作
在项目根目录下,创建buildLog.js,完完整代码如下:
const fs = require('fs'); // 引入文件系统
const exec = require('child_process').exec; // 开启一个子进程
// 封装命令
function execute(command) {
return new Promise((resolve, reject) => {
exec(command, function(err, stdout, stderr) {
if (err != null) {
resolve(err)
} else {
resolve(stdout)
}
})
})
}
async function start() {
// 执行npm打包命令
console.log("开始打包...")
const _build = await execute("npm run build")
// 执行git log命令 查看当前分支提交历史
const _history = await execute("git log -1 --pretty=\"short\"")
// 日志拼接
let newStr = '打包日期:' + new Date().toLocaleString()+ '\n' + _history
// 将日志写入log.txt
fs.writeFile('dist/log.txt', newStr, 'utf-8', function(err) {
if (err != null) {
console.log("ERROR:", err)
} else {
console.log("打包完成")
}
})
}
// 执行任务
start()
在package.json添加buildLog命令
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"buildLog": "node buildLog.js",
"lint": "vue-cli-service lint"
},
最后执行npm run buildLog命令即可