diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 6eb9fc2e8f827a..4dc79efe79726b 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -1350,9 +1350,18 @@ function injectChunkMetadata( chunkMetadataMap.set(key, { importedAssets: new Set(), importedCss: new Set(), + // NOTE: adding this as a workaround for now ideally we'd want to remove this workaround + // use shared `chunk.modules` object + // to allow mutation on js side plugins + __modules: chunk.modules, }) } chunk.viteMetadata = chunkMetadataMap.get(key) + Object.defineProperty(chunk, 'modules', { + get() { + return chunk.viteMetadata!.__modules + }, + }) } function injectEnvironmentInContext( diff --git a/packages/vite/types/metadata.d.ts b/packages/vite/types/metadata.d.ts index e813b7a64b0abc..3c30badd4fbcc7 100644 --- a/packages/vite/types/metadata.d.ts +++ b/packages/vite/types/metadata.d.ts @@ -1,6 +1,7 @@ export interface ChunkMetadata { importedAssets: Set importedCss: Set + __modules: any } declare module 'rolldown' {