// Plugins import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import Fonts from "unplugin-fonts/vite"; import Layouts from "vite-plugin-vue-layouts-next"; import Vue from "@vitejs/plugin-vue"; import VueRouter from "unplugin-vue-router/vite"; import { VueRouterAutoImports } from "unplugin-vue-router"; import Vuetify, { transformAssetUrls } from "vite-plugin-vuetify"; // Utilities import { defineConfig } from "vite"; import { fileURLToPath, URL } from "node:url"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ VueRouter(), Layouts(), Vue({ template: { transformAssetUrls }, }), // https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme Vuetify({ autoImport: true, styles: { configFile: "src/styles/settings.scss", }, }), Components(), Fonts({ google: { families: [ { name: "Roboto", styles: "wght@100;300;400;500;700;900", }, ], }, }), AutoImport({ imports: [ "vue", VueRouterAutoImports, { pinia: ["defineStore", "storeToRefs"], }, ], eslintrc: { enabled: true, }, vueTemplate: true, }), ], optimizeDeps: { exclude: [ "vuetify", "vue-router", "unplugin-vue-router/runtime", "unplugin-vue-router/data-loaders", "unplugin-vue-router/data-loaders/basic", ], }, define: { "process.env": {} }, resolve: { alias: { "@": fileURLToPath(new URL("src", import.meta.url)), }, extensions: [".js", ".json", ".jsx", ".mjs", ".ts", ".tsx", ".vue"], }, server: { port: 3000, proxy: { "/ws": { target: "ws://localhost:8097", ws: "true", }, }, }, });