|
|
import {defineConfig} from "vite"; import vue from "@vitejs/plugin-vue"; import AutoImport from 'unplugin-auto-import/vite'; import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; import viteCompression from 'vite-plugin-compression'; import { resolve } from 'path';
const Timestamp = new Date().getTime(); export default defineConfig({ base: "./", envPrefix:"FT_", build: { sourcemap: false, rollupOptions: { output: { manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0].toString(); } }, chunkFileNames: chunkInfo => { const facadeModuleId = chunkInfo.facadeModuleId ? chunkInfo.facadeModuleId.split('/') : []; const fileName = facadeModuleId.slice(-2)[0] || '[name]'; return `js/${fileName}/[name].[hash].${Timestamp}.js`; } } } }, plugins: [ vue(), AutoImport({ imports: ['vue', 'vue-router', { 'vue': ['withModifiers'] }, { from: 'element-plus/es', imports: ['TabPaneName'], type: true, },], dts: true, eslintrc: { enabled: true }, resolvers: [ElementPlusResolver({ importStyle: 'sass' })] }), viteCompression({ verbose: true, disable: false, threshold: 10240, algorithm: 'gzip', ext: '.gz' }) ], resolve: { alias: { '@': resolve(__dirname, 'src'), apis: resolve(__dirname, 'src/apis'), assets: resolve(__dirname, 'src/assets'), components: resolve(__dirname, 'src/components'), hooks: resolve(__dirname, 'src/hooks'), libs: resolve(__dirname, 'src/libs'), store: resolve(__dirname, 'src/store'), views: resolve(__dirname, 'src/views'), } }, // 本地化配置
server: { open: true, hmr: true, port: 3000, host: '0.0.0.0', proxy: { '/api': { target: 'http://localhost:8080', // secure: false,
changeOrigin: true, //是否跨域
rewrite: path => path.replace(/^\/api/, 'api') } } } });
|