55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import config from '../server/config.ts'
|
|
import { nodePolyfills } from 'vite-plugin-node-polyfills'
|
|
import { execSync } from 'child_process'
|
|
import fs from 'node:fs/promises'
|
|
|
|
const gitHash = execSync('git rev-parse --short HEAD')
|
|
.toString()
|
|
.trim()
|
|
const gitFullHash = execSync('git rev-parse HEAD')
|
|
.toString()
|
|
.trim()
|
|
const gitBranch = execSync('git rev-parse --abbrev-ref HEAD')
|
|
.toString()
|
|
.trim()
|
|
const versionEnv = {
|
|
define: {
|
|
__APP_VERSION__: JSON.stringify(JSON.parse(await fs.readFile('package.json', 'utf-8')).version),
|
|
__GIT_HASH__: JSON.stringify(gitHash),
|
|
__GIT_HASH_FULL__: JSON.stringify(gitFullHash),
|
|
__GIT_BRANCH__: JSON.stringify(gitBranch),
|
|
__BUILD_TIME__: JSON.stringify(new Date().toLocaleString('zh-CN')),
|
|
}
|
|
}
|
|
|
|
function gitHashPlugin() {
|
|
return {
|
|
name: 'git-hash-plugin',
|
|
config() {
|
|
return versionEnv
|
|
}
|
|
}
|
|
}
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
nodePolyfills({
|
|
include: ['crypto', 'stream', 'vm'],
|
|
globals: {
|
|
Buffer: true,
|
|
global: true,
|
|
process: true,
|
|
},
|
|
}),
|
|
gitHashPlugin(),
|
|
],
|
|
build: {
|
|
sourcemap: true,
|
|
outDir: "." + config.data_path + '/page_compiled',
|
|
},
|
|
})
|