vite.config.mjs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Plugins
  2. import Components from 'unplugin-vue-components/vite'
  3. import Vue from '@vitejs/plugin-vue'
  4. import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
  5. // import ViteFonts from 'unplugin-fonts/vite'
  6. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
  7. import AutoImport from 'unplugin-auto-import/vite'
  8. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  9. import path from 'path'
  10. // Utilities
  11. import { defineConfig } from 'vite'
  12. import { fileURLToPath, URL } from 'node:url'
  13. // https://vitejs.dev/config/
  14. export default defineConfig({
  15. plugins: [
  16. Vue({
  17. template: { transformAssetUrls }
  18. }),
  19. // https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme
  20. Vuetify(),
  21. Components({
  22. dts: true,
  23. resolvers: [
  24. (name) => {
  25. if (name.startsWith('Base')) {
  26. return { importName: name.slice(4), path: `@/components/CtVuetify/${name}.vue` }
  27. }
  28. },
  29. ElementPlusResolver(),
  30. ]
  31. }),
  32. AutoImport({
  33. resolvers: [ElementPlusResolver()],
  34. }),
  35. createSvgIconsPlugin({
  36. iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
  37. // symbolId: 'icon-[dir]-[name]',
  38. })
  39. // ViteFonts({
  40. // google: {
  41. // // families: [{
  42. // // name: 'Roboto',
  43. // // styles: 'wght@100;300;400;500;700;900',
  44. // // }],
  45. // },
  46. // }),
  47. ],
  48. define: { 'process.env': {} },
  49. resolve: {
  50. alias: {
  51. '@': fileURLToPath(new URL('./src', import.meta.url))
  52. },
  53. extensions: [
  54. '.js',
  55. '.json',
  56. '.jsx',
  57. '.mjs',
  58. '.ts',
  59. '.tsx',
  60. '.vue',
  61. ],
  62. },
  63. server: {
  64. port: 3000
  65. },
  66. })