import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import { resolve } from 'path' function pathResolve(dir) { return resolve(process.cwd(), '.', dir) } export default defineConfig({ resolve: { alias: [ { find: '@', replacement: pathResolve('src') } ], dedupe: ['vue'] }, plugins: [ vue(), createSvgIconsPlugin({ // 指定需要缓存的图标文件夹 iconDirs: [resolve(process.cwd(), 'src/assets/svg')], // 指定symbolId格式 symbolId: 'icon-[dir]-[name]', }) ], css: { // css预处理器 preprocessorOptions: { less: { charset: false, additionalData: '@import "@/assets/css/theme.less";@import "@/assets/css/global.less";', }, }, }, build: { minify: true, // 生产环境不生成sourcemap target: 'es2015', // 警报门槛,限制大文件大小 chunkSizeWarningLimit: 5000, rollupOptions: { external: [], // 外部化处理那些你不想打包进库的依赖 // 静态资源分类打包 output: { chunkFileNames: 'static/js/[name]-[hash].js', entryFileNames: 'static/js/[name]-[hash].js', assetFileNames: 'static/[ext]/[name]-[hash].[ext]' }, }, }, server: { port: 8088, host: '0.0.0.0', open: true, cors: true, hmr: true, proxy: { '/api': { target: "http://localhost:3001", changeOrigin: true, ws: true, secure: true, }, } } })