| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | // Pluginsimport 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'// Utilitiesimport { 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  },})
 |