@@ -3,18 +3,28 @@ import react from '@vitejs/plugin-react-swc';
3
3
/**@ts -ignore */
4
4
import { execSync } from 'node:child_process' ;
5
5
6
- function sh ( cmd : string ) {
7
- return execSync ( cmd , { encoding : 'utf-8' } ) . trim ( ) ;
6
+ function sh ( cmd : string , fallback = '[unknown]' ) {
7
+ try {
8
+ return execSync ( cmd , { encoding : 'utf-8' } ) . trim ( ) ;
9
+ } catch {
10
+ return fallback ;
11
+ }
8
12
}
13
+ /**@ts -ignore */
14
+ const isDocker : boolean = process . env . VITE_IS_DOCKER_ENVIRONMENT ?. match ( / t r u e | 1 / i) ;
9
15
const headSha = sh ( 'git rev-parse HEAD' ) ;
10
16
const headCommitCount = sh ( 'git rev-list --count HEAD' ) ;
11
17
const headBranch = sh ( 'git rev-parse --abbrev-ref HEAD' ) ;
12
- const anyChanges = sh ( 'git status --porcelain -uall' ) . length > 0 ;
18
+ const anyChanges = sh ( 'git status --porcelain -uall' , '' ) . length > 0 ;
19
+ const BUILD_INFO = isDocker ? '使用 Docker 构建' : `构建版本 {${ headCommitCount } ${ anyChanges ? '*' : '' } }` ;
20
+
13
21
// https://vitejs.dev/config/
14
22
export default defineConfig ( {
15
23
define : {
16
- 'import.meta.env.VITE_BUILD_INFO' : JSON . stringify ( `构建版本 ${ headCommitCount } ${ anyChanges ? '*' : '' } ` ) ,
17
- 'import.meta.env.VITE_BUILD_INFO_DETAIL' : JSON . stringify ( `${ anyChanges ? '有未提交的更改\n' : '' } branch: ${ headBranch } \ncommit: ${ headSha } ` ) ,
24
+ 'import.meta.env.VITE_BUILD_INFO' : JSON . stringify ( BUILD_INFO ) ,
25
+ 'import.meta.env.VITE_BUILD_INFO_DETAIL' : JSON . stringify (
26
+ `${ anyChanges ? '有未提交的更改\n' : '' } 提交总数: ${ headCommitCount } \nbranch: ${ headBranch } \ncommit: ${ headSha } `
27
+ ) ,
18
28
} ,
19
29
plugins : [ react ( ) ] ,
20
30
css : {
0 commit comments