From 2a2f563777bf6f09e5213655386db4c7ab4cc82b Mon Sep 17 00:00:00 2001 From: Wick Date: Sun, 30 Mar 2025 21:56:51 +0800 Subject: [PATCH] feat(pluginContainer): add support for this.getModuleInfo().code in dev --- packages/vite/src/node/server/pluginContainer.ts | 4 +++- packages/vite/src/node/server/transformRequest.ts | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/server/pluginContainer.ts b/packages/vite/src/node/server/pluginContainer.ts index ae8305c5a53d5e..15342016cd60e9 100644 --- a/packages/vite/src/node/server/pluginContainer.ts +++ b/packages/vite/src/node/server/pluginContainer.ts @@ -226,8 +226,10 @@ class EnvironmentPluginContainer { return null } if (!module.info) { + const code = (module as any)._code + delete (module as any)._code module.info = new Proxy( - { id, meta: module.meta || EMPTY_OBJECT } as ModuleInfo, + { id, meta: module.meta || EMPTY_OBJECT, code } as ModuleInfo, // throw when an unsupported ModuleInfo property is accessed, // so that incompatible plugins fail in a non-cryptic way. { diff --git a/packages/vite/src/node/server/transformRequest.ts b/packages/vite/src/node/server/transformRequest.ts index a7104753b976a4..91ed7ee6cb12a0 100644 --- a/packages/vite/src/node/server/transformRequest.ts +++ b/packages/vite/src/node/server/transformRequest.ts @@ -422,6 +422,8 @@ async function loadAndTransform( etag: getEtag(code, { weak: true }), } satisfies TransformResult) + ;(mod as any)._code = code + // Only cache the result if the module wasn't invalidated while it was // being processed, so it is re-processed next time if it is stale if (timestamp > mod.lastInvalidationTimestamp)