import path from 'node:path' import { defineConfig } from 'vite' import tailwindcss from '@tailwindcss/vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue(),tailwindcss()], // 路径别名(和 tsconfig 保持一致) resolve: { alias: { '@': path.resolve(__dirname, 'src') } }, // 核心:build 输出配置 build: { // 1. 打包输出根目录(默认 dist),可自定义 outDir: 'dist', // 2. 静态资源(js/css/img)输出子目录(默认 assets) assetsDir: 'static', // 3. 生成的静态资源文件名是否包含哈希(用于缓存控制) assetsInlineLimit: 4096, // 小于4kb的资源内联,不生成文件 rollupOptions: { // 4. 自定义入口/出口(进阶,一般无需修改) output: { // 自定义 chunk 文件名(拆分公共代码) chunkFileNames: 'static/js/[name]-[hash].js', // 自定义入口文件名 entryFileNames: 'static/js/[name]-[hash].js', // 自定义 css 文件名 assetFileNames: 'static/[ext]/[name]-[hash].[ext]', // 拆分第三方依赖(如 vue、axios 单独打包) manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0].toString(); } } } }, // 5. 生产环境是否生成 sourcemap(默认 false,关闭可减小包体积) sourcemap: false, // 6. 清空输出目录(默认 true) emptyOutDir: true }, // 7. 部署的公共路径(关键!如部署到子路径 https://xxx.com/my-app/,需设为 '/my-app/') base: './' // 相对路径(推荐),或绝对路径 '/' })