Skip to content

Commit 128f09e

Browse files
authored
fix: make viteMetadata property of RenderedChunk optional (#11768)
1 parent 73afe6d commit 128f09e

File tree

7 files changed

+16
-17
lines changed

7 files changed

+16
-17
lines changed

packages/vite/src/node/plugins/asset.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export function renderAssetUrlInJS(
7878
s ||= new MagicString(code)
7979
const [full, referenceId, postfix = ''] = match
8080
const file = ctx.getFileName(referenceId)
81-
chunk.viteMetadata.importedAssets.add(cleanUrl(file))
81+
chunk.viteMetadata!.importedAssets.add(cleanUrl(file))
8282
const filename = file + postfix
8383
const replacement = toOutputFilePathInJS(
8484
filename,

packages/vite/src/node/plugins/css.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
506506
// replace asset url references with resolved url.
507507
chunkCSS = chunkCSS.replace(assetUrlRE, (_, fileHash, postfix = '') => {
508508
const filename = this.getFileName(fileHash) + postfix
509-
chunk.viteMetadata.importedAssets.add(cleanUrl(filename))
509+
chunk.viteMetadata!.importedAssets.add(cleanUrl(filename))
510510
return toOutputFilePathInCss(
511511
filename,
512512
'asset',
@@ -570,7 +570,7 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
570570
generatedAssets
571571
.get(config)!
572572
.set(referenceId, { originalName, isEntry })
573-
chunk.viteMetadata.importedCss.add(this.getFileName(referenceId))
573+
chunk.viteMetadata!.importedCss.add(this.getFileName(referenceId))
574574
} else if (!config.build.ssr) {
575575
// legacy build and inline css
576576

@@ -675,11 +675,10 @@ export function cssPostPlugin(config: ResolvedConfig): Plugin {
675675
// chunks instead.
676676
chunk.imports = chunk.imports.filter((file) => {
677677
if (pureCssChunkNames.includes(file)) {
678-
const {
679-
viteMetadata: { importedCss },
680-
} = bundle[file] as OutputChunk
678+
const { importedCss } = (bundle[file] as OutputChunk)
679+
.viteMetadata!
681680
importedCss.forEach((file) =>
682-
chunk.viteMetadata.importedCss.add(file),
681+
chunk.viteMetadata!.importedCss.add(file),
683682
)
684683
return false
685684
}

packages/vite/src/node/plugins/html.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ export function buildHtmlPlugin(config: ResolvedConfig): Plugin {
658658
})
659659
}
660660

661-
chunk.viteMetadata.importedCss.forEach((file) => {
661+
chunk.viteMetadata!.importedCss.forEach((file) => {
662662
if (!seen.has(file)) {
663663
seen.add(file)
664664
tags.push({

packages/vite/src/node/plugins/importAnalysisBuild.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -475,16 +475,16 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
475475
chunk.imports.forEach(addDeps)
476476
// Ensure that the css imported by current chunk is loaded after the dependencies.
477477
// So the style of current chunk won't be overwritten unexpectedly.
478-
chunk.viteMetadata.importedCss.forEach((file) => {
478+
chunk.viteMetadata!.importedCss.forEach((file) => {
479479
deps.add(file)
480480
})
481481
} else {
482482
const removedPureCssFiles =
483483
removedPureCssFilesCache.get(config)!
484484
const chunk = removedPureCssFiles.get(filename)
485485
if (chunk) {
486-
if (chunk.viteMetadata.importedCss.size) {
487-
chunk.viteMetadata.importedCss.forEach((file) => {
486+
if (chunk.viteMetadata!.importedCss.size) {
487+
chunk.viteMetadata!.importedCss.forEach((file) => {
488488
deps.add(file)
489489
})
490490
hasRemovedPureCssChunk = true

packages/vite/src/node/plugins/manifest.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ export function manifestPlugin(config: ResolvedConfig): Plugin {
9292
}
9393
}
9494

95-
if (chunk.viteMetadata.importedCss.size) {
95+
if (chunk.viteMetadata?.importedCss.size) {
9696
manifestChunk.css = [...chunk.viteMetadata.importedCss]
9797
}
98-
if (chunk.viteMetadata.importedAssets.size) {
98+
if (chunk.viteMetadata?.importedAssets.size) {
9999
manifestChunk.assets = [...chunk.viteMetadata.importedAssets]
100100
}
101101

packages/vite/src/node/ssr/ssrManifestPlugin.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ export function ssrManifestPlugin(config: ResolvedConfig): Plugin {
2727
mappedChunks.push(joinUrlSegments(base, chunk.fileName))
2828
// <link> tags for entry chunks are already generated in static HTML,
2929
// so we only need to record info for non-entry chunks.
30-
chunk.viteMetadata.importedCss.forEach((file) => {
30+
chunk.viteMetadata!.importedCss.forEach((file) => {
3131
mappedChunks.push(joinUrlSegments(base, file))
3232
})
3333
}
34-
chunk.viteMetadata.importedAssets.forEach((file) => {
34+
chunk.viteMetadata!.importedAssets.forEach((file) => {
3535
mappedChunks.push(joinUrlSegments(base, file))
3636
})
3737
}
@@ -59,7 +59,7 @@ export function ssrManifestPlugin(config: ResolvedConfig): Plugin {
5959
analyzed.add(filename)
6060
const chunk = bundle[filename] as OutputChunk | undefined
6161
if (chunk) {
62-
chunk.viteMetadata.importedCss.forEach((file) => {
62+
chunk.viteMetadata!.importedCss.forEach((file) => {
6363
deps.push(joinUrlSegments(base, file)) // TODO:base
6464
})
6565
chunk.imports.forEach(addDeps)

packages/vite/types/metadata.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ export interface ChunkMetadata {
55

66
declare module 'rollup' {
77
export interface RenderedChunk {
8-
viteMetadata: ChunkMetadata
8+
viteMetadata?: ChunkMetadata
99
}
1010
}

0 commit comments

Comments
 (0)