diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 4641cb92c1ec40..05409081a6af3e 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -223,17 +223,24 @@ export function cssPlugin(config: ResolvedConfig): Plugin { * Plugin applied after user plugins */ export function cssPostPlugin(config: ResolvedConfig): Plugin { - const styles = new Map() - const pureCssChunks = new Set() + let styles: Map + let pureCssChunks: Set // when there are multiple rollup outputs and extracting CSS, only emit once, // since output formats have no effect on the generated CSS. - const outputToExtractedCSSMap = new Map() + let outputToExtractedCSSMap: Map let hasEmitted = false return { name: 'vite:css-post', + buildStart() { + // Ensure new caches for every build (i.e. rebuilding in watch mode) + styles = new Map() + pureCssChunks = new Set() + outputToExtractedCSSMap = new Map() + }, + transform(css, id, ssr) { if (!cssLangRE.test(id) || commonjsProxyRE.test(id)) { return