From 19ed4920334e463cc8ee497137b3869aca242d8b Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:55:37 +0900 Subject: [PATCH] wip: renderedModules proxy --- packages/vite/src/node/plugins/css.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 3b442e72719653..7928801ae302bb 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -652,10 +652,19 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { async renderChunk(code, chunk, opts, meta) { let chunkCSS = '' - const renderedModules = Object.fromEntries( - Object.values(meta.chunks).flatMap((chunk) => - Object.entries(chunk.modules), - ), + const renderedModules = new Proxy( + {} as Record, + { + get(_target, p) { + for (const name in meta.chunks) { + const modules = meta.chunks[name].modules + const module = modules[p as string] + if (module) { + return module + } + } + }, + }, ) // the chunk is empty if it's a dynamic entry chunk that only contains a CSS import const isJsChunkEmpty = code === '' && !chunk.isEntry