Files
vitify-nuxt/nuxt.config.ts
2025-04-22 10:56:56 +07:00

95 lines
2.1 KiB
TypeScript

import { aliases } from 'vuetify/iconsets/mdi'
import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
devtools: { enabled: true },
modules: [
'@pinia/nuxt',
'@vueuse/nuxt',
'vuetify-nuxt-module',
// 'nuxt-auth-utils',
'@sidebase/nuxt-auth',
'nuxt-echarts',
'@nuxt/icon',
'@nuxt/eslint',
'@nuxt/test-utils/module',
'@vueform/nuxt',
'@prisma/nuxt',
],
css: ['~/assets/styles/index.css'],
experimental: { typedPages: true },
typescript: { shim: false, strict: true },
vue: { propsDestructure: true },
vueuse: { ssrHandlers: true },
vuetify: {
moduleOptions: {
ssrClientHints: {
viewportSize: true,
prefersColorScheme: true,
prefersColorSchemeOptions: {},
reloadOnFirstRequest: true,
},
},
},
icon: {
clientBundle: {
icons: Object.values(aliases).map((v) =>
(v as string).replace(/^mdi-/, 'mdi:'),
),
scan: true,
// scan all components in the project and include icons
// scan: true,
},
customCollections: [
{
prefix: 'custom',
dir: './assets/icons',
},
],
},
echarts: {
charts: ['LineChart', 'BarChart', 'PieChart', 'RadarChart'],
renderer: 'svg',
components: [
'DataZoomComponent',
'LegendComponent',
'TooltipComponent',
'ToolboxComponent',
'GridComponent',
'TitleComponent',
'DatasetComponent',
'VisualMapComponent',
],
},
build: {
transpile: ['vuetify'],
},
// vite: {
// build: { sourcemap: false },
// },
auth: {
isEnabled: true,
baseURL: process.env.AUTH_ORIGIN,
provider: {
type: 'authjs',
},
globalAppMiddleware: {
isEnabled: true,
},
},
mongoose: {
// uri: 'process.env.MONGODB_URI',
// options: {},
modelsDir: 'models',
devtools: true,
},
compatibilityDate: '2024-08-05',
runtimeConfig: {
public: {
keycloakClient: 'coba-pendaftaran',
keycloakIssuer: 'https://auth.rssa.top/realms/sandbox',
},
},
})