From e11e866e27ef1483d9e7ec8d4abfb4703cc74dbd Mon Sep 17 00:00:00 2001 From: Admin Date: Tue, 10 Mar 2026 18:27:00 +0500 Subject: [PATCH] fix(ui): bundle marked by switching from async to sync API marked({ async: true }) triggers a dynamic internal require inside marked that vite/rollup treats as external, causing ERR_MODULE_NOT_FOUND at runtime in the adapter-node Docker image which ships no node_modules. Switching to the synchronous marked() call makes rollup inline the full library into the server chunk. --- ui/src/routes/api/chapter/[slug]/[n]/+server.ts | 2 +- ui/src/routes/books/[slug]/chapters/[n]/+page.server.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/src/routes/api/chapter/[slug]/[n]/+server.ts b/ui/src/routes/api/chapter/[slug]/[n]/+server.ts index c7c74d6..804eea2 100644 --- a/ui/src/routes/api/chapter/[slug]/[n]/+server.ts +++ b/ui/src/routes/api/chapter/[slug]/[n]/+server.ts @@ -104,7 +104,7 @@ export const GET: RequestHandler = async ({ params, url, locals }) => { const res = await fetch(presignUrl); if (!res.ok) throw new Error(`MinIO returned ${res.status}`); const markdown = await res.text(); - html = await marked(markdown, { async: true }); + html = marked(markdown) as string; } catch (e) { log.error('api/chapter', 'failed to fetch chapter content', { slug, n, err: String(e) }); } diff --git a/ui/src/routes/books/[slug]/chapters/[n]/+page.server.ts b/ui/src/routes/books/[slug]/chapters/[n]/+page.server.ts index 1b15842..ce99964 100644 --- a/ui/src/routes/books/[slug]/chapters/[n]/+page.server.ts +++ b/ui/src/routes/books/[slug]/chapters/[n]/+page.server.ts @@ -114,7 +114,7 @@ export const load: PageServerLoad = async ({ params, url, locals }) => { const res = await fetch(presignUrl); if (!res.ok) throw new Error(`MinIO returned ${res.status}`); const markdown = await res.text(); - html = await marked(markdown, { async: true }); + html = marked(markdown) as string; } catch (e) { // Don't hard-fail — show empty content with error message log.error('chapter', 'failed to fetch chapter content', { slug, n, err: String(e) });