From ea98f527cdf004900915f9cb8e5e5a5e7f711904 Mon Sep 17 00:00:00 2001 From: sapphi-red Date: Fri, 8 Jul 2022 02:12:58 +0900 Subject: [PATCH] fix(css): backport #8936 --- packages/playground/css/__tests__/css.spec.ts | 9 ++++----- packages/vite/src/node/plugins/css.ts | 6 +++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/playground/css/__tests__/css.spec.ts b/packages/playground/css/__tests__/css.spec.ts index e650670b285b94..6ca7733dc10b7d 100644 --- a/packages/playground/css/__tests__/css.spec.ts +++ b/packages/playground/css/__tests__/css.spec.ts @@ -342,8 +342,7 @@ test('PostCSS dir-dependency', async () => { } }) -// skip because #8471 is reverted -test.skip('import dependency includes css import', async () => { +test('import dependency includes css import', async () => { expect(await getColor('.css-js-dep')).toBe('green') expect(await getColor('.css-js-dep-module')).toBe('green') }) @@ -430,9 +429,9 @@ test('PostCSS source.input.from includes query', async () => { ) }) -// skip because #8471 is reverted -test.skip('aliased css has content', async () => { +test('aliased css has content', async () => { expect(await getColor('.aliased')).toBe('blue') - expect(await page.textContent('.aliased-content')).toMatch('.aliased') + // skipped: currently not supported see #8936 + // expect(await page.textContent('.aliased-content')).toMatch('.aliased') expect(await getColor('.aliased-module')).toBe('blue') }) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index e3532cec97cbf6..b617f6132e372e 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -381,7 +381,11 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin { code = `export default ${JSON.stringify(content)}` } } else { - code = `export default ''` + // if moduleCode exists return it **even if** it does not have `?used` + // this will disable tree-shake to work with `import './foo.module.css'` but this usually does not happen + // this is a limitation of the current approach by `?used` to make tree-shake work + // See #8936 for more details + code = modulesCode || `export default ''` } return {