How to get information from git about current branch, commit date and other when using Vite bundler?
How to get information from git about current branch, commit date and other when using Vite bundler?
It is possible to use execSync and retrive git information when starting Vite.
vite.config.ts:
export default ({ mode }: ConfigEnv) => {
const dev = mode === 'development';
const commitDate = execSync('git log -1 --format=%cI').toString().trimEnd();
const branchName = execSync('git rev-parse --abbrev-ref HEAD').toString().trimEnd();
const commitHash = execSync('git rev-parse HEAD').toString().trimEnd();
const lastCommitMessage = execSync('git show -s --format=%s').toString().trimEnd();
process.env.VITE_GIT_COMMIT_DATE = commitDate;
process.env.VITE_GIT_BRANCH_NAME = branchName;
process.env.VITE_GIT_COMMIT_HASH = commitHash;
process.env.VITE_GIT_LAST_COMMIT_MESSAGE = lastCommitMessage;
...
NB: It is important to use VITE_ prefix in variables, otherwise they won't be avaiable.
Usage example:
function BuildInfo() {
const date = new Date(import.meta.env.VITE_GIT_COMMIT_DATE);
return (
<div>
<span>{date.toLocaleString()}</span>
<span>{import.meta.env.VITE_GIT_LAST_COMMIT_MESSAGE}</span>
<span>{import.meta.env.VITE_GIT_BRANCH_NAME}/{import.meta.env.VITE_GIT_COMMIT_HASH}</span>
</div>
);
}
UPD: You can also use https://www.npmjs.com/package/git-rev-sync to get git information.