diff --git a/packages/devtools-vite/src/app/components/data/ChunkDetailsLoader.vue b/packages/devtools-vite/src/app/components/data/ChunkDetailsLoader.vue
new file mode 100644
index 00000000..b1ed5058
--- /dev/null
+++ b/packages/devtools-vite/src/app/components/data/ChunkDetailsLoader.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/devtools-vite/src/app/components/display/ChunkImports.vue b/packages/devtools-vite/src/app/components/display/ChunkImports.vue
new file mode 100644
index 00000000..f0b15d45
--- /dev/null
+++ b/packages/devtools-vite/src/app/components/display/ChunkImports.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
{{ chunk.name || '[unnamed]' }}
+
+
+
+
+
+
+
+
+
+
+
#{{ chunk.chunk_id }}
+
+
+ {{ chunk.imports.length }}
+
+
+
+ {{ chunk.modules.length }}
+
+
+
+
+
+
diff --git a/packages/devtools-vite/src/app/pages/session/[session].vue b/packages/devtools-vite/src/app/pages/session/[session].vue
index 5197c595..0b7fc7ea 100644
--- a/packages/devtools-vite/src/app/pages/session/[session].vue
+++ b/packages/devtools-vite/src/app/pages/session/[session].vue
@@ -35,13 +35,17 @@ function closePluginPanel() {
router.replace({ query: { ...route.query, plugin: undefined } })
}
+function closeChunkPanel() {
+ router.replace({ query: { ...route.query, chunk: undefined } })
+}
+
onKeyDown('Escape', (e) => {
e.preventDefault()
if (!e.isTrusted || e.repeat)
return
- const { module, asset, plugin } = route.query
+ const { module, asset, plugin, chunk } = route.query
if (module)
closeFlowPanel()
@@ -51,6 +55,9 @@ onKeyDown('Escape', (e) => {
if (plugin)
closePluginPanel()
+
+ if (chunk)
+ closeChunkPanel()
})
useSideNav(() => {
@@ -168,5 +175,25 @@ onMounted(async () => {
/>