feat: initial commit - Band Management application

This commit is contained in:
2026-01-06 03:11:46 +01:00
commit 34e12e00b3
24543 changed files with 3991790 additions and 0 deletions

View File

@@ -0,0 +1,189 @@
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
import svgLoader from 'vite-svg-loader'
import vuetify from 'vite-plugin-vuetify'
import { fileURLToPath } from 'node:url'
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
app: {
head: {
titleTemplate: '%s - NuxtJS Admin Template',
title: 'Vuexy',
link: [{
rel: 'icon',
type: 'image/x-icon',
href: process.env.NUXT_APP_BASE_URL+'/favicon.ico',
}],
},
},
devtools: {
enabled: true,
},
css: [
'@core/scss/template/index.scss',
'@styles/styles.scss',
'@/plugins/iconify/icons.css',
],
/*
❗ Please read the docs before updating runtimeConfig
https://nuxt.com/docs/guide/going-further/runtime-config
*/
runtimeConfig: {
// Private keys are only available on the server
AUTH_ORIGIN: process.env.AUTH_ORIGIN,
AUTH_SECRET: process.env.AUTH_SECRET,
// Public keys that are exposed to the client.
public: {
apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || '/api',
mapboxAccessToken: process.env.MAPBOX_ACCESS_TOKEN,
},
},
components: {
dirs: [{
path: '@/@core/components',
pathPrefix: false,
}, {
path: '@/views/demos',
pathPrefix: false,
}, {
path: '~/components/global',
global: true,
}, {
path: '~/components',
pathPrefix: false,
}],
},
auth: {
baseURL: process.env.AUTH_ORIGIN,
globalAppMiddleware: false,
provider: {
type: 'authjs',
},
},
plugins: [
'@/plugins/casl/index.js',
'@/plugins/vuetify/index.js',
'@/plugins/iconify/index.js',
],
imports: {
dirs: ['./@core/utils', './@core/composable/', './plugins/*/composables/*'],
},
hooks: {},
experimental: {
typedPages: true,
},
typescript: {
tsConfig: {
compilerOptions: {
paths: {
'@/*': ['../*'],
'@themeConfig': ['../themeConfig.js'],
'@layouts/*': ['../@layouts/*'],
'@layouts': ['../@layouts'],
'@core/*': ['../@core/*'],
'@core': ['../@core'],
'@images/*': ['../assets/images/*'],
'@styles/*': ['../assets/styles/*'],
'@validators': ['../@core/utils/validators'],
'@db/*': ['../server/fake-db/*'],
'@api-utils/*': ['../server/utils/*'],
},
},
},
},
// Disable source maps until this is resolved: https://github.com/vuetifyjs/vuetify-loader/issues/290
sourcemap: {
server: false,
client: false,
},
alias: {
'@': fileURLToPath(new URL('.', import.meta.url)),
'@themeConfig': fileURLToPath(new URL('./themeConfig.js', import.meta.url)),
'@core': fileURLToPath(new URL('./@core', import.meta.url)),
'@layouts': fileURLToPath(new URL('./@layouts', import.meta.url)),
'@images': fileURLToPath(new URL('./assets/images/', import.meta.url)),
'@styles': fileURLToPath(new URL('./assets/styles/', import.meta.url)),
'@configured-variables': fileURLToPath(new URL('./assets/styles/variables/_template.scss', import.meta.url)),
'@db': fileURLToPath(new URL('./server/fake-db/', import.meta.url)),
'@api-utils': fileURLToPath(new URL('./server/utils/', import.meta.url)),
},
vue: {
compilerOptions: {
isCustomElement: tag => tag === 'swiper-container' || tag === 'swiper-slide',
},
},
vite: {
define: { 'process.env': {} },
resolve: {
alias: {
'@': fileURLToPath(new URL('.', import.meta.url)),
'@themeConfig': fileURLToPath(new URL('./themeConfig.js', import.meta.url)),
'@core': fileURLToPath(new URL('./@core', import.meta.url)),
'@layouts': fileURLToPath(new URL('./@layouts', import.meta.url)),
'@images': fileURLToPath(new URL('./assets/images/', import.meta.url)),
'@styles': fileURLToPath(new URL('./assets/styles/', import.meta.url)),
'@configured-variables': fileURLToPath(new URL('./assets/styles/variables/_template.scss', import.meta.url)),
'@db': fileURLToPath(new URL('./server/fake-db/', import.meta.url)),
'@api-utils': fileURLToPath(new URL('./server/utils/', import.meta.url)),
},
},
build: {
chunkSizeWarningLimit: 5000,
},
optimizeDeps: {
exclude: ['vuetify'],
entries: [
'./**/*.vue',
],
},
plugins: [
svgLoader(),
vuetify({
styles: {
configFile: 'assets/styles/variables/_vuetify.scss',
},
}),
],
},
build: {
transpile: ['vuetify'],
},
compatibilityDate: '2025-07-15',
i18n: {
vueI18n: '../i18n.config.js',
bundle: {
optimizeTranslationDirective: true,
},
},
modules: [
'@vueuse/nuxt',
'@nuxtjs/i18n',
'@nuxtjs/device',
'@sidebase/nuxt-auth',
'@pinia/nuxt',
],
})