Files
template-nuxtsim/nuxt.config.d.ts

152 lines
3.9 KiB
TypeScript

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
app: {
head: {
title: "RSSA",
titleTemplate: "%s - Admin Dashboard",
meta: [
{ charset: "utf-8" },
{ name: "viewport", content: "width=device-width, initial-scale=1" },
{ name: "format-detection", content: "telephone=no" }
],
link: [
{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" },
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap"
}
]
}
},
// css: [
// "vuetify/lib/styles/main.sass", // Core Vuetify styles
// "@mdi/font/css/materialdesignicons.min.css", // Material Design Icons
// "~/scss/style.scss", // Custom application styles
// ],
/**
* Modules dan plugins
* Integrasi dengan ecosystem Nuxt.js
*/
modules: [
"@pinia/nuxt", // State management dengan Pinia
"@sidebase/nuxt-auth",
// [
// "@sidebase/nuxt-auth",
// {
// // Add auth module options here as per Sidebase auth guide
// auth: {
// isEnabled: true,
// baseURL:
// process.env.AUTH_ORIGIN || "http://meninjar.dev.rssa.id:3000",
// provider: {
// type: "authjs"
// // Additional provider options can be added here
// },
// globalAppMiddleware: {
// isEnabled: true
// }
// }
// }
// ]
],
plugins: [
"~/plugins/vuetify.ts" // Setup Vuetify dengan konfigurasi custom
],
ssr: false,
typescript: {
shim: false
},
build: {
transpile: ["vuetify"]
},
vite: {
define: {
"process.env.DEBUG": false
},
server: {
allowedHosts: ["firman.dev.rssa.id", "localhost:3000","localhost:3001"]
//allowedHosts: ["meninjar.dev.rssa.id"]
}
// css: {
// preprocessorOptions: {
// scss: {
// // Global SCSS variables yang dapat diakses di semua komponen
// additionalData: `@import "~/scss/variables.scss";`,
// },
// },
// },
},
nitro: {
serveStatic: true,
compressPublicAssets: true, // Kompresi asset untuk faster loading,
/**
* Prerender routes untuk static generation
* Halaman yang akan di-generate saat build time
*/
prerender: {
// routes: [
// '/', // Landing page
// '/auth/login', // Halaman login
// '/auth/register' // Halaman register
// ]
}
/**
* Route protection untuk production
* Middleware untuk security dan rate limiting
*/
// routeRules: {
// '/admin/**': {
// headers: { 'X-Robots-Tag': 'noindex' }
// // index: false // ❌ Property ini tidak valid - sudah dihapus
// }
// }
},
runtimeConfig: {
authSecret: process.env.AUTH_SECRET,
keycloakClientSecret: process.env.KEYCLOAK_CLIENT_SECRET,
keycloakClientId: process.env.KEYCLOAK_CLIENT_ID,
// Move keycloakIssuer to public to expose on client side
public: {
// authUrl: process.env.AUTH_ORIGIN || "http://meninjar.dev.rssa.id:3000",
// keycloakIssuer:
// process.env.KEYCLOAK_ISSUER || "https://auth.rssa.top/realms/sandbox"
keycloakUrl: process.env.KEYCLOAK_URL,
keycloakClient: process.env.KEYCLOAK_ID,
keycloakRealm: process.env.KEYCLOAK_REALM,
}
},
auth: {
isEnabled: true,
baseURL: process.env.AUTH_ORIGIN,
provider: {
type: "authjs",
},
globalAppMiddleware: {
isEnabled: true,
},
},
devServerHandlers: [],
hooks: {},
/**
* Development tools configuration
* Tools untuk meningkatkan developer experience
*/
devtools: {
enabled: true, // Enable Nuxt DevTools untuk debugging
timeline: {
enabled: true // Enable timeline untuk performance monitoring
}
},
compatibilityDate: "2024-10-23"
});