uni-app 每行后面显示git最后一次提交记录 类似vscode里面的插件
uni-app 每行后面显示git最后一次提交记录 类似vscode里面的插件
截图是vscode里面的。
这个要逆天
这个确实逆天,楼主得知道团队级工程,一个JavaScript动则就是上千行,而Git原生就只支持查看文件的提交&修改相关信息,文件内容?而且还定位到每行??真有这功能,HBuilder X当场逆天,VSCode还算个屁╭☞(  ̄ ▽ ̄)╭☞
vscode 已经有这插件了,所以才会这么说
回复 吊车尾: 但vscode装了git插件,就有这功能,所以用惯了vsocde根本用不惯hb
专业团队承接双端(Android,iOS)原生插件开发,uni-app外包开发。有意联系QQ:1559653449
在uni-app项目中实现每行代码后面显示Git最后一次提交记录的功能,实际上是一个比较复杂的任务,因为IDE(如VSCode)的插件可以较为容易地访问代码文件和Git仓库信息,而在一个已经打包好的应用中,这样的信息通常不会直接嵌入到代码中。
不过,如果你希望在开发阶段或者通过某种方式在构建过程中获取这些信息,以下是一个可能的解决方案思路,涉及使用Git命令和Node.js脚本来处理文件,并在构建阶段将这些信息注入到代码中。请注意,这不会直接在每行代码后显示提交记录,而是可以在文件的头部或特定位置显示。
步骤概述
- 获取Git提交信息:使用Git命令获取每个文件的最后一次提交信息。
- 处理文件:编写Node.js脚本来读取文件,并将提交信息添加到文件的头部或指定位置。
- 构建应用:在uni-app的构建流程中集成上述脚本。
示例代码
1. 获取Git提交信息(bash脚本)
#!/bin/bash
for file in $(git ls-files); do
commit_hash=$(git log -1 --pretty=format:%H -- $file)
author=$(git log -1 --pretty=format:%an <%ae> -- $file)
date=$(git log -1 --pretty=format:%ad --date=iso -- $file)
message=$(git log -1 --pretty=format:%s -- $file)
echo "// Last commit for $file: $commit_hash by $author on $date - $message" > temp_$file
cat $file >> temp_$file
mv temp_$file $file
done
2. Node.js脚本处理文件(可选,更灵活的集成方式)
这里提供一个Node.js版本的伪代码思路,实际实现需要更多细节处理,比如异步操作等。
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
async function getGitInfo(file) {
return new Promise((resolve, reject) => {
exec(`git log -1 --pretty=format:"%H %an <%ae> %ad - %s" --date=iso -- ${file}`, (error, stdout, stderr) => {
if (error) reject(error);
resolve(stdout.trim());
});
});
}
// 遍历文件并处理...
注意
- 上述bash脚本是一个简单示例,直接在文件顶部添加提交信息,实际应用中需要处理文件冲突、备份原始文件等问题。
- Node.js脚本提供了一个更灵活的框架,但实现细节较为复杂,特别是异步操作和文件I/O处理。
- 在uni-app中集成这些脚本,可能需要在
package.json
的脚本部分添加自定义命令,或者在构建流程中手动执行这些脚本。
由于直接在每行代码后显示提交记录在技术实现上较为复杂且实用性不高,上述方案提供了一种在文件头部或特定位置添加提交信息的方法。