| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { defineConfig } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import AutoImport from 'unplugin-auto-import/vite'
- import Components from 'unplugin-vue-components/vite'
- import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
- import compression from 'vite-plugin-compression'
-
- // https://vitejs.dev/config/
- export default defineConfig({
- plugins: [
- vue(),
- AutoImport({
- // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
- imports: ['vue', 'vue-router', 'pinia'],
- // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox 等
- resolvers: [ElementPlusResolver()],
- dts: 'src/auto-imports.d.ts',
- }),
- Components({
- // 自动导入 Element Plus 组件
- resolvers: [ElementPlusResolver()],
- dts: 'src/components.d.ts',
- }),
- // 开启 Gzip 压缩
- compression({
- verbose: true,
- disable: false,
- threshold: 10240,
- algorithm: 'gzip',
- ext: '.gz',
- }),
- ],
- resolve: {
- alias: {
- '@': '/src',
- '@components': '/src/components',
- '@views': '/src/views',
- '@api': '/src/api',
- '@utils': '/src/utils',
- '@assets': '/src/assets',
- },
- },
- css: {
- preprocessorOptions: {
- scss: {
- additionalData: `@import "@/assets/style.scss";`,
- },
- },
- },
- server: {
- port: 3000,
- open: true,
- cors: true,
- proxy: {
- '/api': {
- target: 'http://localhost:8080',
- changeOrigin: true,
- rewrite: (path) => path.replace(/^\/api/, ''),
- },
- },
- },
- build: {
- // 生产环境构建配置
- target: 'es2015',
- outDir: 'dist',
- assetsDir: 'assets',
- minify: 'terser',
- terserOptions: {
- compress: {
- drop_console: true,
- drop_debugger: true,
- },
- },
- rollupOptions: {
- output: {
- chunkFileNames: 'assets/js/[name]-[hash].js',
- entryFileNames: 'assets/js/[name]-[hash].js',
- assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
- manualChunks: {
- 'element-plus': ['element-plus'],
- 'vue-vendor': ['vue', 'vue-router', 'pinia'],
- },
- },
- },
- },
- })
|