Skip to content

Commit d3992af

Browse files
committed
feat(vite): add total size of imports for chunk
1 parent 866780b commit d3992af

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

packages/vite/src/app/components/data/ChunkDetails.vue

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,18 @@ const modulesMap = computed(() => {
2222
return map
2323
})
2424
25-
const chunkSize = computed(() => props.chunk.modules.reduce((total, moduleId) => {
26-
const moduleInfo = modulesMap.value.get(moduleId)
27-
const transforms = moduleInfo?.buildMetrics?.transforms
28-
return transforms?.length ? total + transforms[transforms.length - 1]!.transformed_code_size : total
29-
}, 0))
25+
function getModuleSize(modules: string[]) {
26+
return modules.reduce((total, id) => {
27+
const moduleInfo = modulesMap.value.get(id)
28+
if (!moduleInfo || !moduleInfo.buildMetrics?.transforms?.length)
29+
return total
30+
31+
const transforms = moduleInfo.buildMetrics.transforms
32+
return total + transforms[transforms.length - 1]!.transformed_code_size
33+
}, 0)
34+
}
35+
36+
const chunkSize = computed(() => getModuleSize(props.chunk.modules))
3037
3138
const route = useRoute()
3239
const rpc = useRpc()
@@ -45,7 +52,7 @@ const { state, isLoading } = useAsyncState(
4552
4653
const normalizedChunks = computed(() => props.chunks || state.value)
4754
48-
const imports = computed((): RolldownChunkImport[] => {
55+
const imports = computed((): Array<RolldownChunkImport & { size: number }> => {
4956
return props.chunk.imports.map((importChunk) => {
5057
const chunk = normalizedChunks.value?.find(c => c.chunk_id === importChunk.chunk_id)
5158
return {
@@ -54,6 +61,7 @@ const imports = computed((): RolldownChunkImport[] => {
5461
reason: chunk?.reason || 'common',
5562
imports: chunk?.imports.length || 0,
5663
modules: chunk?.modules.length || 0,
64+
size: getModuleSize(chunk?.modules || []),
5765
}
5866
})
5967
})
@@ -79,7 +87,10 @@ const importers = computed((): RolldownChunkImport[] => {
7987
<ChunksBaseInfo :chunk="chunk">
8088
<template #left-after>
8189
<DisplayBadge v-if="chunk.is_initial" text="initial" />
82-
<DisplayFileSizeBadge :bytes="chunkSize" text-sm />
90+
<DisplayFileSizeBadge :bytes="chunkSize" text-sm title="Chunk size" />
91+
<div v-if="imports.length" text-sm op50 flex="~ items-center" title="Total size of imports">
92+
(<DisplayFileSizeBadge :bytes="imports.reduce((total, i) => total + i.size, 0) " />)
93+
</div>
8394
</template>
8495
<slot />
8596
</ChunksBaseInfo>

0 commit comments

Comments
 (0)