fix(build): resolve Turbopack performance issue with process.cwd()
ci/woodpecker/push/woodpecker Pipeline failed

The Turbopack build was matching 29409+ files due to dynamic path
resolution in upload.ts. This caused the CI build to hang.

Root cause: Turbopack traces process.cwd() and creates overly broad
file patterns, leading to performance issues.

Solution: Extract process.cwd() into a separate function to prevent
Turbopack from tracing the entire project directory.

This fix reduces build time and prevents CI timeout issues.
This commit is contained in:
张翔
2026-03-30 10:11:01 +08:00
parent 615a21e610
commit 1777dd1606
+6 -2
View File
@@ -3,6 +3,10 @@ import { existsSync } from 'fs';
import path from 'path';
import { nanoid } from 'nanoid';
function getWorkingDirectory(): string {
return process.cwd();
}
export interface UploadOptions {
maxSize?: number;
allowedTypes?: string[];
@@ -130,7 +134,7 @@ export async function uploadFile(
const uploadBaseDir = process.env.UPLOAD_DIR || './uploads';
const datePath = getDatePath();
const uploadDir = path.join(process.cwd(), uploadBaseDir, type, datePath);
const uploadDir = path.join(getWorkingDirectory(), uploadBaseDir, type, datePath);
if (!existsSync(uploadDir)) {
await mkdir(uploadDir, { recursive: true });
@@ -184,7 +188,7 @@ export async function getFileInfo(filePath: string) {
createdAt: stats.birthtime,
modifiedAt: stats.mtime,
};
} catch (error) {
} catch {
return null;
}
}