diff --git a/packages/playground/css/__tests__/css.spec.ts b/packages/playground/css/__tests__/css.spec.ts index 212778a375a5dd..260ef7e431249d 100644 --- a/packages/playground/css/__tests__/css.spec.ts +++ b/packages/playground/css/__tests__/css.spec.ts @@ -30,12 +30,19 @@ test('linked css', async () => { }) test('css import from js', async () => { + const importedNoVars = await page.$('.imported-no-vars') const imported = await page.$('.imported') const atImport = await page.$('.imported-at-import') + expect(await getColor(importedNoVars)).toBe('magenta') expect(await getColor(imported)).toBe('green') expect(await getColor(atImport)).toBe('purple') + editFile('imported-without-variable.css', (code) => + code.replace('color: magenta', 'color: cyan') + ) + await untilUpdated(() => getColor(importedNoVars), 'cyan') + editFile('imported.css', (code) => code.replace('color: green', 'color: red')) await untilUpdated(() => getColor(imported), 'red') diff --git a/packages/playground/css/imported-without-variable.css b/packages/playground/css/imported-without-variable.css new file mode 100644 index 00000000000000..1f3b0892a6a325 --- /dev/null +++ b/packages/playground/css/imported-without-variable.css @@ -0,0 +1,3 @@ +.imported-no-vars { + color: magenta; +} diff --git a/packages/playground/css/index.html b/packages/playground/css/index.html index ac2d0e90fb5526..450cc4ef266de4 100644 --- a/packages/playground/css/index.html +++ b/packages/playground/css/index.html @@ -6,6 +6,10 @@

CSS

<link>: This should be blue

@import in <link>: This should be red

+

+ import from js, no vars: This should be magenta +

+

import from js: This should be green

@import in import from js: This should be purple diff --git a/packages/playground/css/main.js b/packages/playground/css/main.js index 31b44b5552a8e5..a8b7399aa4425a 100644 --- a/packages/playground/css/main.js +++ b/packages/playground/css/main.js @@ -1,3 +1,5 @@ +import './imported-without-variable.css' + import css from './imported.css' text('.imported-css', css) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 3b96f3f923f21e..56917fd4510ae4 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -245,7 +245,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { } else { // server only if (ssr) { - return modulesCode || `export default ${JSON.stringify(css)}` + return modulesCode || `export default ''` } return [ `import { updateStyle, removeStyle } from ${JSON.stringify( @@ -267,7 +267,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { styles.set(id, css) return { - code: modulesCode || `export default ${JSON.stringify(css)}`, + code: modulesCode || `export default ''`, map: { mappings: '' }, // avoid the css module from being tree-shaken so that we can retrieve // it in renderChunk()