Skip to content

Commit 8be0489

Browse files
Ray0907claude
andcommitted
fix: resolve duplicate Vue instance SSR crash from reka-ui peer dep conflict
- Add .npmrc with shamefully-hoist=true to prevent pnpm from creating isolated Vue module instances for each package - Upgrade @nuxt/ui from 4.4.0 to 4.6.0 (uses reka-ui 2.9.2 vs 2.7.0) - Add pnpm.overrides to pin Vue and reka-ui to consistent versions - Fixes "Cannot read properties of null (reading 'ce')" SSR 500 error caused by reka-ui ConfigProvider using a separate @vue/runtime-core instance from the server renderer Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 3ddfa29 commit 8be0489

File tree

5 files changed

+1140
-1266
lines changed

5 files changed

+1140
-1266
lines changed

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
shamefully-hoist=true

app/app.vue

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
1+
<script setup lang="ts">
2+
const colorMode = useColorMode()
3+
4+
const color = computed(() => colorMode.value === 'dark' ? '#1c1412' : '#fcf4f2')
5+
6+
useHead({
7+
meta: [
8+
{ charset: 'utf-8' },
9+
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
10+
{ key: 'theme-color', name: 'theme-color', content: color }
11+
],
12+
link: [
13+
{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }
14+
],
15+
htmlAttrs: {
16+
lang: 'en'
17+
}
18+
})
19+
20+
useSeoMeta({
21+
title: 'CC Hub',
22+
description: 'Dashboard for browsing, searching, and editing Claude Code configuration files.'
23+
})
24+
</script>
25+
126
<template>
2-
<NuxtLayout>
3-
<NuxtPage />
4-
</NuxtLayout>
27+
<UApp>
28+
<NuxtLoadingIndicator />
29+
30+
<NuxtLayout>
31+
<NuxtPage />
32+
</NuxtLayout>
33+
</UApp>
534
</template>

app/pages/index.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
<script setup lang="ts">
2-
navigateTo('/mission-control', { replace: true })
2+
await navigateTo('/mission-control', { replace: true })
33
</script>
4+
5+
<template>
6+
<div />
7+
</template>

package.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"@iconify-json/lucide": "^1.2.87",
1616
"@iconify-json/simple-icons": "^1.2.68",
1717
"@internationalized/date": "^3.10.1",
18-
"@nuxt/ui": "^4.4.0",
18+
"@nuxt/ui": "^4.6.0",
1919
"@nuxtjs/mdc": "^0.20.1",
2020
"@tanstack/table-core": "^8.21.3",
2121
"@unovis/ts": "^1.6.2",
@@ -42,7 +42,15 @@
4242
"pnpm": {
4343
"onlyBuiltDependencies": [
4444
"better-sqlite3"
45-
]
45+
],
46+
"overrides": {
47+
"vue": "^3.5.29",
48+
"@vue/runtime-core": "^3.5.29",
49+
"@vue/runtime-dom": "^3.5.29",
50+
"@vue/reactivity": "^3.5.29",
51+
"@vue/shared": "^3.5.29",
52+
"reka-ui": "2.9.2"
53+
}
4654
},
4755
"packageManager": "pnpm@10.28.1"
4856
}

0 commit comments

Comments
 (0)