import { defineConfig } from 'vite' import path from 'path' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import {svgBuilder} from './src/config/svgBuilder' import requireTransform from 'vite-plugin-require-transform' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), vueJsx(), requireTransform({ fileRegex: /.js$|.vue$/ }), svgBuilder('./src/assets/svg/'),//提取导入svg文件 ], resolve:{ alias:{ "@":path.resolve(__dirname,'src'), } }, build:{ outDir:"dist", assetsDir:"static", cssCodeSplit:true, // 拆分css代码 brotliSize: false, // 压缩代码 rollupOptions:{ input:{ // 多项目打包 index: path.resolve(__dirname, 'index.html'), }, // external:['vue'], // 控制插件不编译 output: { entryFileNames: `static/[name].[hash].js`, chunkFileNames: `static/[name].[hash].js`, assetFileNames: e=>{ console.log('name=',e.anme) console.log('type=',e.type) return 'assets/[name].[hash].[ext]' }, }, } }, optimizeDeps:{ include:[] // 依赖预编译 }, server:{ host:"0.0.0.0", port:8090, strictPort:true, //端口被占用是不会退出,换新端口 open:true, // 自动打开页面 proxy:{ '/api':{ target:"", changeOrigin:true, ws:false, rewrite: path=>path.replace(/^\/api/,'') } }, }, pluginOptions:{ 'style-resources-loader':{ preProcessor: 'less', patterns:[ // 全局less文件 path.resolve(__dirname, 'assets/style/index.less') ] } } })