// 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' import Vue from '@vitejs/plugin-vue' import VueRouter from 'unplugin-vue-router/vite' import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' import basicSsl from '@vitejs/plugin-basic-ssl' // Utilities import { defineConfig } from 'vite' import { fileURLToPath, URL } from 'node:url' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ VueRouter(), Layouts(), Vue({ template: { transformAssetUrls: false } }), // 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', 'vue-router', ], eslintrc: { enabled: true, }, vueTemplate: true, }), basicSsl() ], define: { 'process.env': {} }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, extensions: [ '.js', '.json', '.jsx', '.mjs', '.ts', '.tsx', '.vue', ], }, build:{ outDir:'./frontend', }, server: { watch: { ignored: /repo|3rdparty/ }, hmr:true, strictPort: true, //host:'0.0.0.0', proxy:{ '/api': { target: 'https://localhost:3000', changeOrigin: true, secure: false }, '/asset': { target: 'https://localhost:3000', changeOrigin: true, secure: false }, '^/proxied/.*': { target: 'https://localhost:3000', changeOrigin: true, secure: false, rewrite: (path) => path.replace(/^\/proxied/, ''), }, } } })