From 05dc837ab7dfeaeba268c63db5ae76a0f2777aac Mon Sep 17 00:00:00 2001 From: Eduard Kuzmenko Date: Sat, 30 Dec 2023 15:43:49 +0400 Subject: [PATCH 1/3] Fix analysing build chunk without dependencies --- packages/vite/src/node/plugins/importAnalysisBuild.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 16e51e287db3a7..0e4e3691754db4 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -515,10 +515,10 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { const chunk = bundle[filename] as OutputChunk | undefined if (chunk) { deps.add(chunk.fileName) - chunk.imports.forEach(addDeps) + if(chunk.imports) chunk.imports.forEach(addDeps) // Ensure that the css imported by current chunk is loaded after the dependencies. // So the style of current chunk won't be overwritten unexpectedly. - chunk.viteMetadata!.importedCss.forEach((file) => { + if(chunk.viteMetadata) chunk.viteMetadata!.importedCss.forEach((file) => { deps.add(file) }) } else { From a4d9a59a9e88321820664edac2ed365883ededd3 Mon Sep 17 00:00:00 2001 From: patak Date: Tue, 9 Jan 2024 13:08:53 +0100 Subject: [PATCH 2/3] chore: format --- packages/vite/src/node/plugins/importAnalysisBuild.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 0e4e3691754db4..174d33e621634e 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -515,12 +515,13 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { const chunk = bundle[filename] as OutputChunk | undefined if (chunk) { deps.add(chunk.fileName) - if(chunk.imports) chunk.imports.forEach(addDeps) + if (chunk.imports) chunk.imports.forEach(addDeps) // Ensure that the css imported by current chunk is loaded after the dependencies. // So the style of current chunk won't be overwritten unexpectedly. - if(chunk.viteMetadata) chunk.viteMetadata!.importedCss.forEach((file) => { - deps.add(file) - }) + if (chunk.viteMetadata) + chunk.viteMetadata!.importedCss.forEach((file) => { + deps.add(file) + }) } else { const removedPureCssFiles = removedPureCssFilesCache.get(config)! From eea60838090ddae6b634c693b247a81826546e5b Mon Sep 17 00:00:00 2001 From: patak Date: Mon, 4 Mar 2024 20:11:53 +0100 Subject: [PATCH 3/3] fix: update to check chunk.type --- .../vite/src/node/plugins/importAnalysisBuild.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 9406bec6bdc0ab..8779ef80f78e20 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -5,7 +5,7 @@ import type { ImportSpecifier, } from 'es-module-lexer' import { init, parse as parseImports } from 'es-module-lexer' -import type { OutputChunk, SourceMap } from 'rollup' +import type { SourceMap } from 'rollup' import type { RawSourceMap } from '@ampproject/remapping' import convertSourceMap from 'convert-source-map' import { @@ -377,16 +377,17 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin { if (filename === ownerFilename) return if (analyzed.has(filename)) return analyzed.add(filename) - const chunk = bundle[filename] as OutputChunk | undefined + const chunk = bundle[filename] if (chunk) { deps.add(chunk.fileName) - if (chunk.imports) chunk.imports.forEach(addDeps) - // Ensure that the css imported by current chunk is loaded after the dependencies. - // So the style of current chunk won't be overwritten unexpectedly. - if (chunk.viteMetadata) + if (chunk.type === 'chunk') { + chunk.imports.forEach(addDeps) + // Ensure that the css imported by current chunk is loaded after the dependencies. + // So the style of current chunk won't be overwritten unexpectedly. chunk.viteMetadata!.importedCss.forEach((file) => { deps.add(file) }) + } } else { const removedPureCssFiles = removedPureCssFilesCache.get(config)!