-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnext.config.ts
More file actions
41 lines (37 loc) · 1004 Bytes
/
next.config.ts
File metadata and controls
41 lines (37 loc) · 1004 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import type { NextConfig } from "next";
import { execSync } from "child_process";
import { readFileSync } from "fs";
import { join } from "path";
// Get git commit hash at build time (graceful fallback for non-git repos)
const getGitCommitHash = (): string => {
try {
return execSync('git rev-parse HEAD', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
} catch {
return 'development';
}
};
// Get package version from package.json
const getPackageVersion = (): string => {
try {
const packageJson = JSON.parse(readFileSync(join(process.cwd(), 'package.json'), 'utf8'));
return packageJson.version;
} catch {
return '1.0.0';
}
};
const nextConfig: NextConfig = {
env: {
GIT_COMMIT_SHA: getGitCommitHash(),
PACKAGE_VERSION: getPackageVersion(),
BUILD_TIME: new Date().toISOString(),
},
turbopack: {
rules: {
"*.svg": {
loaders: ["@svgr/webpack"],
as: "*.js",
},
},
},
};
export default nextConfig;