Files
monisuo/monisuo-admin/vite.config.ts

81 lines
2.0 KiB
TypeScript
Raw Normal View History

2026-03-22 13:55:23 +08:00
import type { PluginOption } from 'vite'
import tailwindcss from '@tailwindcss/vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import { fileURLToPath, URL } from 'node:url'
import { visualizer } from 'rollup-plugin-visualizer'
import AutoImport from 'unplugin-auto-import/vite'
2026-03-22 16:38:57 +08:00
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
2026-03-22 13:55:23 +08:00
import Component from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'
import vueDevTools from 'vite-plugin-vue-devtools'
import Layouts from 'vite-plugin-vue-layouts'
import { VueRouterAutoImports } from 'vue-router/unplugin'
import VueRouter from 'vue-router/vite'
const RouteGenerateExclude = ['**/components/**', '**/layouts/**', '**/data/**', '**/types/**']
export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://localhost:5010',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
plugins: [
VueRouter({
exclude: RouteGenerateExclude,
dts: 'src/types/route-map.d.ts',
}),
vue(),
vueJsx(),
vueDevTools(),
tailwindcss(),
visualizer({ gzipSize: true, brotliSize: true }) as PluginOption,
Layouts({
defaultLayout: 'default',
}),
AutoImport({
include: [
/\.[tj]sx?$/,
/\.vue$/,
],
imports: [
'vue',
VueRouterAutoImports,
],
dirs: [
'src/composables/**/*.ts',
'src/constants/**/*.ts',
'src/stores/**/*.ts',
],
defaultExportByFilename: true,
dts: 'src/types/auto-import.d.ts',
}),
Component({
dirs: [
'src/components',
],
collapseSamePrefixes: true,
directoryAsNamespace: true,
dts: 'src/types/auto-import-components.d.ts',
2026-03-22 16:38:57 +08:00
resolvers: [
IconsResolver(),
],
}),
Icons({
autoInstall: true,
2026-03-22 13:55:23 +08:00
}),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
})