12345678910111213141516171819202122232425262728 |
- import fs from 'fs'
- import path from 'path'
- import { execSync } from 'child_process'
- import type { Plugin } from 'vite'
- import { formatDateTime } from '../src/utils'
- export default function buildInfoPlugin(mode: string): Plugin {
- return {
- name: 'build-info-plugin',
- closeBundle() {
- const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf-8'))
- const buildInfo = {
- version: pkg.version,
- buildTime: formatDateTime(new Date()),
- branch: execSync('git rev-parse --abbrev-ref HEAD').toString().trim(),
- commitHash: execSync('git rev-parse --short HEAD').toString().trim(),
- env: mode,
- }
- const outDir = path.resolve(process.cwd(), 'dist')
- fs.writeFileSync(path.join(outDir, 'version.json'), JSON.stringify(buildInfo, null, 2))
- console.log('\x1b[36m📦 已生成 version.json\x1b[0m')
- console.log(buildInfo)
- },
- }
- }
|