Skip to content

Commit

Permalink
fix(lib): remove pure CSS dynamic import (#17601)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy authored Jul 2, 2024
1 parent dafff4a commit 055f1c1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
4 changes: 3 additions & 1 deletion packages/vite/src/node/plugins/importAnalysisBuild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,9 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
return
}

if (ssr || isWorker) {
// If preload is not enabled, we parse through each imports and remove any imports to pure CSS chunks
// as they are removed from the bundle
if (!insertPreload) {
const removedPureCssFiles = removedPureCssFilesCache.get(config)
if (removedPureCssFiles && removedPureCssFiles.size > 0) {
for (const file in bundle) {
Expand Down
8 changes: 8 additions & 0 deletions playground/lib/__tests__/lib.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,14 @@ describe.runIf(isBuild)('build', () => {
expect(code).toMatch(/await import\("\.\/message-[-\w]{8}.js"\)/)
})

test('Library mode does not have any reference to pure CSS chunks', async () => {
const code = readFile('dist/lib/dynamic-import-message.es.mjs')

// Does not import pure CSS chunks and replaced by `Promise.resolve({})` instead
expect(code).not.toMatch(/await import\("\.\/dynamic-[-\w]{8}.js"\)/)
expect(code).toMatch(/await Promise.resolve\(\{.*\}\)/)
})

test('@import hoist', async () => {
serverLogs.forEach((log) => {
// no warning from esbuild css minifier
Expand Down

0 comments on commit 055f1c1

Please sign in to comment.