From 915242970c9b15b66225be48f2134d74c5279c72 Mon Sep 17 00:00:00 2001 From: Script Generator Date: Wed, 1 Jul 2026 16:25:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=89=8D=E7=AB=AF):=20=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=89=8D=E6=B8=85=E7=90=86=20Next=20=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关键改动: - 前端 dev 启动前删除可能残留的 .next 缓存 - 新增安全路径校验,避免清理脚本误删 Web 应用外目录 Co-Authored-By: Codex GPT-5 --- apps/web/package.json | 2 +- apps/web/scripts/clean-next-dev-cache.mjs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 apps/web/scripts/clean-next-dev-cache.mjs diff --git a/apps/web/package.json b/apps/web/package.json index 8b99aed..965e7bc 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "private": true, "scripts": { - "dev": "node --max-old-space-size=4096 node_modules/next/dist/bin/next dev --port 3000", + "dev": "node scripts/clean-next-dev-cache.mjs && node --max-old-space-size=4096 node_modules/next/dist/bin/next dev --port 3000", "build": "node --max-old-space-size=4096 node_modules/next/dist/bin/next build", "start": "next start", "lint": "next lint", diff --git a/apps/web/scripts/clean-next-dev-cache.mjs b/apps/web/scripts/clean-next-dev-cache.mjs new file mode 100644 index 0000000..6381c18 --- /dev/null +++ b/apps/web/scripts/clean-next-dev-cache.mjs @@ -0,0 +1,16 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const webRoot = path.resolve(scriptDir, '..'); +const nextDir = path.resolve(webRoot, '.next'); + +if (!nextDir.startsWith(`${webRoot}${path.sep}`)) { + throw new Error(`Refusing to remove path outside web app: ${nextDir}`); +} + +if (fs.existsSync(nextDir)) { + fs.rmSync(nextDir, { recursive: true, force: true }); + console.log('[web dev] removed stale .next cache'); +}