From 449ec05d47adf306e199fe478bcf930ac9971a33 Mon Sep 17 00:00:00 2001 From: "T. Narantuya" Date: Thu, 11 Sep 2025 17:11:58 +0900 Subject: [PATCH] script --- apps/portal/scripts/dev-prep.mjs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/portal/scripts/dev-prep.mjs b/apps/portal/scripts/dev-prep.mjs index 37a705fc..d7a42a3c 100644 --- a/apps/portal/scripts/dev-prep.mjs +++ b/apps/portal/scripts/dev-prep.mjs @@ -2,7 +2,7 @@ /* eslint-env node */ // Ensure dev-time Next.js manifests exist to avoid noisy ENOENT errors -import { mkdirSync, existsSync, writeFileSync } from "fs"; +import { mkdirSync, existsSync, writeFileSync, rmSync } from "fs"; import { join } from "path"; import { URL } from "node:url"; /* global console */ @@ -10,9 +10,28 @@ import { URL } from "node:url"; const root = new URL("..", import.meta.url).pathname; // apps/portal const nextDir = join(root, ".next"); const routesManifestPath = join(nextDir, "routes-manifest.json"); +const serverDir = join(nextDir, "server"); +const vendorChunksDir = join(serverDir, "vendor-chunks"); +const webpackRuntimePath = join(serverDir, "webpack-runtime.js"); try { + // Ensure .next exists mkdirSync(nextDir, { recursive: true }); + + // Proactively clear stale vendor chunks to avoid version-mismatch runtime errors + // e.g. Cannot find module './vendor-chunks/zod@x.y.z.js' + try { + if (existsSync(vendorChunksDir)) { + rmSync(vendorChunksDir, { recursive: true, force: true }); + console.log("[dev-prep] Cleared .next/server/vendor-chunks"); + } + if (existsSync(webpackRuntimePath)) { + rmSync(webpackRuntimePath); + console.log("[dev-prep] Removed .next/server/webpack-runtime.js to force regeneration"); + } + } catch (e) { + console.warn("[dev-prep] Failed to clear vendor-chunks:", e?.message || e); + } if (!existsSync(routesManifestPath)) { const minimalManifest = { version: 5,