Skip to content

Commit 437f670

Browse files
committed
refactor: correctly extend nuxt config
1 parent e5ef4bf commit 437f670

File tree

2 files changed

+27
-23
lines changed

2 files changed

+27
-23
lines changed

playground/nuxt.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { mdiAccountMultiple, mdiViewDashboard, mdiHome, mdiTestTube, mdiLogin, m
22

33
export default defineNuxtConfig({
44
modules: ['../src/module'],
5+
ssr: false,
56
devtools: { enabled: true },
67
compatibilityDate: '2025-06-16',
78
nuxtifyApp: {

src/module.ts

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
extendPages,
1010
installModule,
1111
useLogger,
12+
extendRouteRules,
1213
} from '@nuxt/kit'
1314
import { name, version } from '../package.json'
1415
import type { ModuleOptions } from './types/module'
@@ -49,26 +50,11 @@ export default defineNuxtModule<ModuleOptions>({
4950
const resolver = createResolver(import.meta.url)
5051
const logger = useLogger('@nuxtify/app')
5152

52-
// Update Nuxt config
53-
_nuxt.options.ssr = false
54-
_nuxt.options.routeRules = defu(_nuxt.options.routeRules || {}, {
55-
// Middleware
56-
'/': {
57-
appMiddleware: ['auth-user-only'],
58-
},
59-
'/account': {
60-
appMiddleware: ['auth-user-only'],
61-
},
62-
'/signin': {
63-
appMiddleware: ['auth-public'],
64-
},
65-
'/signup': {
66-
appMiddleware: ['auth-public'],
67-
},
68-
'/admin/**': {
69-
appMiddleware: ['auth-super-admin-only'],
70-
},
71-
})
53+
// Warn if SSR
54+
if (_nuxt.options.ssr) {
55+
logger.warn('[@nuxtify/app]', 'Not compatible with SSR. For the most reliable experience, please set `ssr: false` in your nuxt.config.ts.')
56+
_nuxt.options.ssr = false
57+
}
7258

7359
// Expose module options to app config
7460
_nuxt.options.appConfig.nuxtify = defu(_nuxt.options.appConfig.nuxtify, {
@@ -113,14 +99,31 @@ export default defineNuxtModule<ModuleOptions>({
11399
addRouteMiddleware({
114100
name: 'auth-public',
115101
path: resolver.resolve('./runtime/middleware/authPublic.ts'),
116-
})
102+
}, { prepend: true })
117103
addRouteMiddleware({
118104
name: 'auth-user-only',
119105
path: resolver.resolve('./runtime/middleware/authUserOnly.ts'),
120-
})
106+
}, { prepend: true })
121107
addRouteMiddleware({
122108
name: 'auth-super-admin-only',
123109
path: resolver.resolve('./runtime/middleware/authSuperAdminOnly.ts'),
110+
}, { prepend: true })
111+
112+
// Route rules
113+
extendRouteRules('/', {
114+
appMiddleware: ['auth-user-only'],
115+
})
116+
extendRouteRules('/account', {
117+
appMiddleware: ['auth-user-only'],
118+
})
119+
extendRouteRules('/signin', {
120+
appMiddleware: ['auth-public'],
121+
})
122+
extendRouteRules('/signup', {
123+
appMiddleware: ['auth-public'],
124+
})
125+
extendRouteRules('/admin/**', {
126+
appMiddleware: ['auth-super-admin-only'],
124127
})
125128

126129
// Layouts
@@ -215,7 +218,7 @@ export default defineNuxtModule<ModuleOptions>({
215218
if (coreImportIndex > -1) {
216219
imports.splice(coreImportIndex, 1)
217220
if (_options.verboseLogs)
218-
logger.info(
221+
logger.info('[@nuxtify/app]',
219222
'Intentionally overriding useNuxtifyConfig from @nuxtify/core.',
220223
)
221224
}

0 commit comments

Comments
 (0)