import { fileURLToPath } from "node:url"; import svgLoader from "vite-svg-loader"; import vuetify from "vite-plugin-vuetify"; // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ app: { head: { titleTemplate: "%s - NuxtJS Admin Template", title: "Sneat", link: [ { rel: "icon", type: "image/x-icon", href: "/favicon.ico", }, ], }, }, devtools: { enabled: true, }, css: [ "@core/scss/template/index.scss", "@styles/styles.scss", "@/plugins/iconify/icons.css", "@layouts/styles/index.scss", ], components: { dirs: [ { path: "@/@core/components", pathPrefix: false, }, { path: "~/components/global", global: true, }, { path: "~/components", pathPrefix: false, }, ], }, plugins: ["@/plugins/vuetify/index.ts", "@/plugins/iconify/index.ts"], imports: { dirs: ["./@core/utils", "./@core/composable/", "./plugins/*/composables/*"], }, hooks: {}, experimental: { typedPages: true, }, // Node.js 22 호환성 설정 compatibilityDate: "2024-10-01", typescript: { tsConfig: { compilerOptions: { paths: { "@/*": ["../*"], "@layouts/*": ["../@layouts/*"], "@layouts": ["../@layouts"], "@core/*": ["../@core/*"], "@core": ["../@core"], "@images/*": ["../assets/images/*"], "@styles/*": ["../assets/styles/*"], }, }, }, }, // ℹ️ Disable source maps until this is resolved: https://github.com/vuetifyjs/vuetify-loader/issues/290 sourcemap: { server: false, client: false, }, vue: { compilerOptions: { isCustomElement: (tag) => tag === "swiper-container" || tag === "swiper-slide", }, }, vite: { define: { "process.env": {} }, resolve: { alias: { "@": fileURLToPath(new URL(".", 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) ), }, }, build: { chunkSizeWarningLimit: 5000, }, optimizeDeps: { exclude: ["vuetify"], entries: ["./**/*.vue"], }, plugins: [ svgLoader(), vuetify({ styles: { configFile: "assets/styles/variables/_vuetify.scss", }, }), ], }, build: { transpile: ["vuetify"], }, modules: ["@vueuse/nuxt", "@nuxtjs/device", "@pinia/nuxt"], });