// Plugins import Components from 'unplugin-vue-components/vite' import Vue from '@vitejs/plugin-vue' import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' // import ViteFonts from 'unplugin-fonts/vite' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import AutoImport from 'unplugin-auto-import/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import path from 'path' // Utilities import { defineConfig } from 'vite' import { fileURLToPath, URL } from 'node:url' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ Vue({ template: { transformAssetUrls } }), // https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme Vuetify(), Components({ dts: true, resolvers: [ (name) => { if (name.startsWith('Base')) { return { importName: name.slice(4), path: `@/components/CtVuetify/${name}.vue` } } }, ElementPlusResolver(), ] }), AutoImport({ resolvers: [ElementPlusResolver()], }), createSvgIconsPlugin({ iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')], // symbolId: 'icon-[dir]-[name]', }) // ViteFonts({ // google: { // // families: [{ // // name: 'Roboto', // // styles: 'wght@100;300;400;500;700;900', // // }], // }, // }), ], define: { 'process.env': {} }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, extensions: [ '.js', '.json', '.jsx', '.mjs', '.ts', '.tsx', '.vue', ], }, server: { port: 3000 }, configureWebpack: { output: { filename: 'js/[name].' + new Date().getTime() + '.js', chunkFilename: 'js/[name].' + new Date().getTime() + '.js' } } })